Salve gente,
finalmente pure io con una domanda su rails
Qualcuno ha mai provato a usare fixture_file_upload()
con gli integration test?
Sto provando a testare un’applicazioncina che usa
attachment_fu (con rails 2.0.1) ma non ne vengo fuori,
per quel che ne capisco una cosa del genere:
data = fixture_file_upload(‘rails.png’, ‘image/png’)
post ‘action’, :data=>data
oppure, secondo me:
post ‘action’, {:data=>data}, {:multipart=>true}
dovrebbe andare, ma ottengo un simpatico errore
NoMethodError (undefined method `content_type’ for
“#ActionController::TestUploadedFile:0xb6f8f514”:String):
che è dovuto alla conversione che accade in
integration.rb:337, dove gli argomenti sono
trasformati in stringhe con to_s.
Gugolando un po’, sembra sia un bug che esiste da due
anni, mai fixato.
A voi è mai capitato? Come lo avete aggirato?
__________________________________________________________
Sent from Yahoo! Mail - a smarter inbox http://uk.mail.yahoo.com
Non so aiutarti perché non ho mai scritto un integration test con
rails :-/
Il giorno 15/dic/07, alle ore 22:33, gabriele renzi ha scritto:
Sto provando a testare un’applicazioncina che usa
attachment_fu (con rails 2.0.1) ma non ne vengo fuori,
per quel che ne capisco una cosa del genere:
[…]
On Sat, 15 Dec 2007 21:33:04 +0000 (GMT), gabriele renzi wrote:
Salve gente,
finalmente pure io con una domanda su rails
Qualcuno ha mai provato a usare fixture_file_upload()
con gli integration test?
Non puoi semplicemente mockare la chiamata a to_s?
tipo:
data.expects(:to_s).returns(‘pippo’)
?
Qualcuno ha mai provato a usare
fixture_file_upload()
con gli integration test?
Non puoi semplicemente mockare la chiamata a to_s?
tipo:
data.expects(:to_s).returns(‘pippo’)
il fatto è che non sto facendo un test unitario, ma di
integrazione.
L’intero test è in realtà una cosa tipo
- vai home → redirect login
- fai login ->redirect home
- carica file
- manipola file
- ri-manipola file
- etc…
io ho già veririfcato che l’upload funziona nel test
unitario del controller (che rails chiama funzionale,
ma vabè), ma qua ho bisogno del mio oggetto file-like
anche dopo.
–
Goto 10: http://www.goto10.it
blog it: http://riffraff.blogsome.com
blog en: http://www.riffraff.info
___________________________________________________________
Support the World Aids Awareness campaign this month with Yahoo! For
Good http://uk.promotions.yahoo.com/forgood/
On Dec 16, 2007 10:29 AM, gabriele renzi [email protected] wrote:
il fatto è che non sto facendo un test unitario, ma di
integrazione.
(forse… non ho provato) con:
def MyTestUploadedFile < ActionController::TestUploadedFile
def to_s
self
end
end
Shortcut for
ActionController::TestUploadedFile.new(Test::Unit::TestCase.fixture_path
post :change_avatar, :avatar =>
fixture_file_upload(‘/files/spongebob.png’, ‘image/png’)
def my_fixture_file_upload(path, mime_type = nil)
MyTestUploadedFile.new(
Test::Unit::TestCase.respond_to?(:fixture_path) ?
Test::Unit::TestCase.fixture_path + path : path,
mime_type
)
end
potresti poi fare:
data = my_fixture_file_upload(‘rails.png’, ‘image/png’)
post ‘action’, :data=>data
(magari hai gia provato e non funziona…)
ciao,
Luca
On Dec 15, 2007 10:33 PM, gabriele renzi [email protected] wrote:
Salve gente,
finalmente pure io con una domanda su rails
Qualcuno ha mai provato a usare fixture_file_upload()
con gli integration test?
CIao Gabriele, ti scrivo di fretta quindi magari non ho capito bene il
problema…ma tempo fa avevo avuto un problema del genere, e avevo
sostituito
fixture_file_upload con un metodo del genere:
def uploaded_file(path, content_type=“application/octet-stream”,
filename=nil)
filename ||= File.basename(path)
t = Tempfile.new(filename)
FileUtils.copy_file(path, t.path)
(class << t; self; end;).class_eval do
alias local_path path
define_method(:original_filename) { filename }
define_method(:content_type) { content_type }
end
return t
end
…magari puo essere utile…fammi sapere…
-Andrea
— Luc
(forse… non ho provato) con:
def MyTestUploadedFile <
ActionController::TestUploadedFile
def to_s
self
end
end
eh si, ovviamente avevo provato
Il problema è che tutto viene trasfrormatio in una
stringa http-style, quindi non posso infilarci i dati.
Dovrei scrivere un to_s che fa il form/mime encoding,
credo, o modificare la gestione dei parametri…
Insomma scrivere una patch, che sarebbe un’ammissione
che non funziona e non sto sbagliando io
–
Goto 10: http://www.goto10.it
blog it: http://riffraff.blogsome.com
blog en: http://www.riffraff.info
__________________________________________________________
Sent from Yahoo! Mail - a smarter inbox http://uk.mail.yahoo.com
— Andrea F. [email protected] wrote:
CIao Gabriele, ti scrivo di fretta quindi magari non
ho capito bene il
problema…ma tempo fa avevo avuto un problema del
genere, e avevo
sostituito
fixture_file_upload con un metodo del genere:
mh… mi pare abbastanza simile a quello che
TestFileUploaded in realtà, nel mio caso fallisce
comunque ma grazie per il tentativo
–
Goto 10: http://www.goto10.it
blog it: http://riffraff.blogsome.com
blog en: http://www.riffraff.info
__________________________________________________________
Sent from Yahoo! Mail - a smarter inbox http://uk.mail.yahoo.com