No, as mentioned in my first post, the property that needs to be fulfilled is uploaded_data. I posted the accessor in my first post as well.

aslak hellesoy wrote:
On 8/22/07, Matt Lins <[EMAIL PROTECTED]> wrote:
 Sorry, attachment_fu is a plugin for handling binary data. It handles
storing the file in the file system and storing some helpful data in the
database about the file.

 The previous code is from the attachment_fu  plugin(no, I didn't modify
it). This property

What property? The :filename property?

needs to be satisfied in order for the model to validate.
So I need to get my model to validate in the spec so I can actually test
other parts of my model. Here is my model:


Can't you just set the filename property directly from your spec
without going through attachment kung fu?

Aslak

 class Picture < ActiveRecord::Base

   has_and_belongs_to_many :products

   has_attachment :content_type => 'image/jpeg',
                  :storage => :file_system,
                  :max_size => 3.megabytes,
                  :resize_to => '400x400>',
                  :thumbnails => {:medium => '200x200>', :small =>
'100x100>'},
                  :path_prefix => 'images/products'

   validates_as_attachment

   validates_uniqueness_of :filename
   validates_presence_of :filename

   def before_update
     self.thumbnails.each do |t|
       t.filename= thumbnail_name_for(t.thumbnail)
       t.save
     end
   end

   def full_filename(thumbnail = nil)
     file_system_path = (thumbnail ? thumbnail_class :
self).attachment_options[:path_prefix].to_s
     File.join(RAILS_ROOT, 'public/external', file_system_path,
thumbnail_name_for(thumbnail) + '.jpg')
   end

   def public_image
     self.public_filename
   end

 end


 aslak hellesoy wrote:
 On 8/22/07, Matt Lins <[EMAIL PROTECTED]> wrote:


 First off, I'm not trying to spec attachment_fu, I know it's been tested.

 But, I added some code to that model that I do need to test. Basically, I
need to somehow fulfill the "uploaded_data" property so I can actually run
my tests(otherwise they fail because of validations). The "uploaded_data"
field is what would grab the multipart data from form. Here it is:

 # This method handles the uploaded file object. If you set the field
name to uploaded_data, you don't need
 # any special code in your controller.
 #
 # <% form_for :attachment, :html => { :multipart => true } do |f|
-%>
 # <p><%= f.file_field :uploaded_data %></p>
 # <p><%= submit_tag :Save %>
 # <% end -%>
 #
 # @attachment = Attachment.create! params[:attachment]
 #
 # TODO: Allow it to work with Merb tempfiles too.
 def uploaded_data=(file_data)
 return nil if file_data.nil? || file_data.size == 0
 self.content_type = file_data.content_type
 self.filename = file_data.original_filename if
respond_to?(:filename)
 if file_data.is_a?(StringIO)
 file_data.rewind
 self.temp_data = file_data.read
 else
 self.temp_path = file_data.path
 end
 end


 I'm not familiar with attachment_fu - is this code from attachment_fu
that you have modified? Or is it your code entirely? Attachment_fu's
entirely? Where does this code come from?

Aslak



 While I was digging I found out that "file_data" is a ruby Tempfile object.
So, I tried to create a dummy file and pass it, but it failed. I found out
in the CGI library, it actually extends the Tempfile object and adds some
methods/properties. It started to get messy, so I thought I'd ask for
advice.

 How can I create a valid attachment_fu model spec(so I can start tweaking
it to test my other validations)?

_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users


 _______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users


_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users

_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users
_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users

Reply via email to