What was the resolution on this?  How do you people test uploads with
rspec stories?

On Wed, Dec 12, 2007 at 6:54 AM, David Chelimsky <[EMAIL PROTECTED]> wrote:
> On Dec 12, 2007 5:41 AM, Daniel Tenner <[EMAIL PROTECTED]> wrote:
>  >
>  > Ok, a bit more digging and I found this is a Rails issue, that is logged
>  > here:
>  >
>  > http://dev.rubyonrails.org/ticket/4635
>  >
>  > File uploads don't work in Rails integration tests either, only in
>  > functional tests. This is not specific to Attachment-Fu.
>  >
>  > There is, however, a monkey patch that you can download to enable a
>  > multipart_post method which will not mangle the params anymore.
>  >
>  > Hope this helps others too!
>
>  Daniel - thanks for doing the research on this. There are no tests for
>  the rails patch. If you're willing to add rspec examples and
>  contribute it to the rspec tracker, I'll add it to rspec as a
>  temporary fix until that ticket is resolved.
>
>
>
>  >
>  > Daniel
>  >
>  >
>  >
>  > On 12 Dec 2007, at 09:38 12 Dec 2007, voodoorai2000 wrote:
>  >
>  >
>  > Hi,
>  >
>  > I had the same problem, couldn't get it to run with Stories thought...
>  > Had to test file uploads using controller specs, which works but is not as
>  > clear as a Story.
>  >
>  > I'm guessing the bug where it changes the TempFile to a String will be 
> fixed
>  > soon by the core team, but if someone has a patch it would be awesome!
>  >
>  >
>  > Rai
>  >
>  >
>  >
>  > Daniel Tenner wrote:
>  >
>  > I've now located where this is going wrong, though I am not yet sure
>  > how to fix it.
>  >
>  > In rails' integration.rb, there is a method called 'process'. around
>  > line 226. It mangles the parameters by calling:
>  >            data = requestify(parameters)
>  >
>  > doing:
>  >            puts "\n1----===#{parameters.inspect}"
>  >            puts "\n2----===#{data.inspect}"
>  >
>  > a bit later reveals the problem:
>  > 1----==={:quick_file=>{:filename=>"file-
>  > TFile.txt", :uploaded_data=>#<ActionController::TestUploadedFile:
>  > 0x3434150 @content_type="text/plain", @tempfile=#<File:/tmp/
>  > test_upload29259-0.txt>,
>  > @original_filename="test_upload.txt">}, :quick_folder=>
>  > {:id=>1330}, :request_type=>"xml"}
>  >
>  > 2----==="quick_file%5Bfilename%5D=file-TFile.txt&quick_file%
>  > 5Buploaded_data%5D=%23%3CActionController%3A%3ATestUploadedFile%
>  > 3A0x3434150%3E&quick_folder%5Bid%5D=1330&request_type=xml"
>  >
>  > Obviously that's not going to work. I wonder how Test::Unit does it,
>  > then, though...
>  >
>  > Daniel
>  >
>  > On 11 Dec 2007, at 14:54 11 Dec 2007, Daniel Tenner wrote:
>  >
>  >
>  > Hi Luis,
>  >
>  > I read through that thread, but unfortunately it wasn't much help.
>  >
>  > fixture_file_upload also creates an
>  > ActionController::TestUploadedFile. It's is just a shortcut to
>  > ActionController::TestUploadedFile.new.
>  >
>  > There's no problem with the path - it creates the fixture and loads
>  > the file, and has the right values inside if I inspect the params
>  > directly before posting them:
>  >
>  > {:filename=>"file-
>  > TFile.txt", :uploaded_data=>#<ActionController::TestUploadedFile:
>  > 0x33f83bc @content_type=#<Mime::Type:0x10e2490 @symbol=:text,
>  > @synonyms=[], @string="text/plain">, @tempfile=#<File:/tmp/
>  > test_upload29049-0.txt>, @original_filename="test_upload.txt">}
>  >
>  > It's only once this is passed into the controller that it all gets
>  > to_s'ed.
>  >
>  > I like the idea of 'providing a real file upload', but I'm not sure
>  > how to do that in a Story... if anyone has any suggestions or
>  > pointers, they would be welcome!
>  >
>  > Thanks,
>  >
>  > Daniel
>  >
>  > On 11 Dec 2007, at 14:39 11 Dec 2007, Luis Lavena wrote:
>  >
>  >
>  > On Dec 11, 2007 10:57 AM, Daniel Tenner <[EMAIL PROTECTED]>
>  > wrote:
>  >
>  > I've pasted up the code at:
>  >
>  > http://pastie.caboo.se/126925
>  >
>  > Since there are quite a few files involved.
>  >
>  > Thanks for your time,
>  >
>  >
>  >
>  > A similar discussion was raised back in november (about
>  > fixture_file_upload):
>  >
>  > http://rubyforge.org/pipermail/rspec-users/2007-November/004378.html
>  >
>  > Instead of mocking the FileUpload, why not provide a real one?
>  >
>  > After all, the StoryRunner is aimed to fully exercise your code :-D
>  >
>  > Also, adjust the path of your TestFileUpload file location,
>  > instead of
>  > a relative one (../spec/fixtures) provide one related to RAILS_ROOT,
>  > which will work no matter where you put your helper or what is your
>  > current directory (Dir.chdir).
>  >
>  > HTH,
>  >
>  > --
>  > Luis Lavena
>  > Multimedia systems
>  > -
>  > A common mistake that people make when trying to design
>  > something completely foolproof is to underestimate
>  > the ingenuity of complete fools.
>  > Douglas Adams
>  > _______________________________________________
>  > 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
>  >
>  >
>  >
>  > --
>  > View this message in context:
>  > 
> http://www.nabble.com/Attachment-fu-%2B-Story-Runner-tp14272891p14291797.html
>  > Sent from the rspec-users mailing list archive at Nabble.com.
>  >
>  > _______________________________________________
>  > 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