[rspec-users] Testing file attachment with Paperclip
nick at deadorange.com
Fri Jan 16 23:53:39 EST 2009
On 2009-01-16, at 17:42, Fernando Perez wrote:
> Nicholas Wieland wrote:
>> Does someone have an example on faking a file upload for just
>> it gets called, without actually uploading the file to s3.
>> I thought that stubbing Model.has_attached_file would be enough, but
>> it doesn't seem so ...
>> This is what I did:
>> Video.stub!( :has_attached_file ).with( :name ).and_return( true )
>> has_attached_file is from paperclip, it gets mixed to the model.
>> RightAws::AwsError in 'VideosController should create a valid Video'
>> AWS access keys are required to operate on S3
>> Maybe I missed something ?
> I am struggling with Webrat and Paperclip. If I specify:
> validates_attachment_presence :image, then AR complains because
> there is no image set.
> Therefore I decide to remove this validation, and instead use:
> validates_presence_of :image_file_name, to trick him. But it still
> doesn't work. When I create a new object, even if I put:
> Product.create!(..., :image_file_name => 'thumb1.png'), AR still
> complains and it says that Image file name is missing. There must be
> some Paperclip magic which I can't get around.
> The only solution I have found is to remove the validation of the
> attachment for passing the tests, but I'd like to keep it.
> Anyone ran into this previously?
G'day again Fernando. IIRC, Paperclip's #save_attached_files is what
takes care of saving the attachment to disk, uploading it to S3, etc.
Here's a small gist that tests the allowance of JPG files, and ensures
that the file isn't saved [to disk, for me]:
I hope that helps!
More information about the rspec-users