paperclip unit testing


Rails 2.3.2, paperclip

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 ---{:image =>'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 ---
--- 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



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

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

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?