I have the following piece of code that checks if the returned video object is the same as the one I put in.
The video object is a Panda Stream object, and referring to their homepage, the Panda::Video.find
should return exactly the object I put in with the Panda::Video.create
method.
# screencast_spec.rb
before(:each) do
@screencast = Factory.build(:screencast)
@video = Panda::Video.create(:source_url => "http://panda-test-harness-videos.s3.amazonaws.com/panda.mp4")
end
it "should fetch the video with the #video method" do
@screencast.video = @video
@screencast.video.should == @video
end
# screencast.rb
# Returns the panda::video object
def video
Panda::Video.find(self.video_id)
end
# Sets the +video_id+ reference
def video= video_object_or_id
video_object_or_id = video_object_or_id.id unless video_object_or_id.is_a?(Integer)
self.video_id = video_object_or_id
end
The error that RSpec returns is this:
1) Screencast#video should fetch the video with the #video method
Failure/Error: @screencast.video.should == @video
expected: #<Panda::Video id: "dac9bf057c9b667f57096054a64625a1", created_at: "2012/01/29 18:04:07 +0000", updated_at: "2012/01/29 18:04:07 +0000", original_filename: "panda.mp4", source_url: "http://panda-test-harness-videos.s3.amazonaws.com/panda.mp4", duration: nil, height: nil, width: nil, extname: ".mp4", file_size: nil, video_bitrate: nil, audio_bitrate: nil, audio_codec: nil, video_codec: nil, fps: nil, audio_channels: nil, audio_sample_rate: nil, status: "processing", path: "dac9bf057c9b667f57096054a64625a1", cloud_id: "55372b1612963b045f27bb093fed0abb">
got: #<Panda::Video id: "dac9bf057c9b667f57096054a64625a1", created_at: "2012/01/29 18:04:07 +0000", updated_at: "2012/01/29 18:04:07 +0000", original_filename: "panda.mp4", source_url: "http://panda-test-harness-videos.s3.amazonaws.com/panda.mp4", duration: nil, height: nil, width: nil, extname: ".mp4", file_size: nil, video_bitrate: nil, audio_bitrate: nil, audio_codec: nil, video_codec: nil, fps: nil, audio_channels: nil, audio_sample_rate: nil, status: "processing", path: "dac9bf057c9b667f57096054a64625a1", cloud_id: "55372b1612963b045f27bb093fed0abb"> (using ==)
Diff:
# ./spec/models/screencast_spec.rb:26:in `block (3 levels) in <top (required)>'
Note the diff saying that there is no difference between the two objects, so why is the comparison failing?
If any of you have any pointers, or have tried testing the panda stream before I would appreciate all the guidance I can get