paperclip unit testing

Hi,

Rails 2.3.2, paperclip 2.2.9.2

How can I unit test my model that has a paperclip attachment?

I add to my model:

--- CODE START --- has_attached_file :image, :default_url => '' attr_protected :image_file_name, :image_content_type, :image_image_size --- CODE END ---

Than I type a UNIT test:

--- CODE START --- foo=FooModel.new({:image => File.new('test/fixtures/img/an_image.gif')}) --- CODE END ---

This works fine until... in that model I have a validator that accesses the "image" attribute:

--- CODE START --- image.path --- CODE END ---

But there is no image under that path, since it points to RAILS_ROOT/public/system/images/... What should I do now?

Yep, you actually need to upload the picture actually.

  Take a look at the following code snippet I wrote some time back, for uploading image, resizing. (Ignore the code which is for image cropping)   http://gist.github.com/129954

Thanks Srinivas

Thanks!

How do you process the image in the model?

Before the save of the model object to database I want to add another image to it, that is a modified version of the "image" attribute.

I do:   has_attached_file :image   has_attached_file :image2   after_validation :prepare_image2

And:   def cprepare_image2    (...)    path = image.queued_for_write[:original].path    self.image2 = some_rmagic_processing(path)    (...)   end

Is there any other way to access the uploaded image? "image.queued_for_write[:original].path" does not look nice :confused:

May be use an other callback?