Nose, teardown, open(), OSError
Verfasst: Sonntag 30. November 2008, 23:54
Wenn ich mit dem Unittest "Framework" nose versuche, (mittels dem tool nosetests) diese tests ausführen zu lassen:
http://paste.pocoo.org/show/93328/
kommt das hier dabei raus:
Zuerst wollte ich mir das bloß wegen "imp" nicht antun, aber StringIO Fakes akzeptiert imp leider nicht.
Zusätzlich wird eine Datei mit dem namen "c" erstellt. Versuche ich, die Tests von Hand laufen zu lassen, klappt es (wobei die Datei "c" auch hier erstellt wird?). Ich habe mir daraufhin den betroffenen code von nose angeschaut, und dort war (wie erwartet) absolut nichts verdächtiges zu finden. Das "working dir" bleibt auch das gleiche. Hab ich Tomaten auf den Augen ..?
EDIT: Der open() Aufruf vor teardown ist natürlich Debugging Müll, weil Nose "print" und "sys.stdout.write" verschluckt. Achja, und das plugin.load_module lädt nur mithilfe von imp eine Python Datei, sind 5 Zeilen Code, bloß try / finally und imp.acquire_lock() usw.
http://paste.pocoo.org/show/93328/
kommt das hier dabei raus:
Code: Alles auswählen
world.py: WorldDirector: Initing and Testing ... ok
======================================================================
ERROR: test suite for <module 'test_main.test_filetype_utils.test_plugin' from '/media/Daten/Projects/Quetzalcoatl/master/tests/test_main/test_filetype_utils/test_plugin.pyc'>
----------------------------------------------------------------------
Traceback (most recent call last):
File "/var/lib/python-support/python2.5/nose/suite.py", line 166, in run
self.tearDown()
File "/var/lib/python-support/python2.5/nose/suite.py", line 255, in tearDown
self.teardownContext(ancestor)
File "/var/lib/python-support/python2.5/nose/suite.py", line 272, in teardownContext
try_run(context, names)
File "/var/lib/python-support/python2.5/nose/util.py", line 453, in try_run
return func()
File "/media/Daten/Projects/Quetzalcoatl/master/tests/test_main/test_filetype_utils/test_plugin.py", line 33, in teardown
os.remove(TEMP_NAME)
OSError: [Errno 2] No such file or directory: 'temporary.py'
======================================================================
ERROR: test suite for <module 'test_main.test_parsesystem' from '/media/Daten/Projects/Quetzalcoatl/master/tests/test_main/test_parsesystem.pyc'>
----------------------------------------------------------------------
Traceback (most recent call last):
File "/var/lib/python-support/python2.5/nose/suite.py", line 166, in run
self.tearDown()
File "/var/lib/python-support/python2.5/nose/suite.py", line 255, in tearDown
self.teardownContext(ancestor)
File "/var/lib/python-support/python2.5/nose/suite.py", line 272, in teardownContext
try_run(context, names)
File "/var/lib/python-support/python2.5/nose/util.py", line 453, in try_run
return func()
File "/media/Daten/Projects/Quetzalcoatl/master/tests/test_main/test_filetype_utils/test_plugin.py", line 33, in teardown
os.remove(TEMP_NAME)
OSError: [Errno 2] No such file or directory: 'temporary.py'
----------------------------------------------------------------------
Zusätzlich wird eine Datei mit dem namen "c" erstellt. Versuche ich, die Tests von Hand laufen zu lassen, klappt es (wobei die Datei "c" auch hier erstellt wird?). Ich habe mir daraufhin den betroffenen code von nose angeschaut, und dort war (wie erwartet) absolut nichts verdächtiges zu finden. Das "working dir" bleibt auch das gleiche. Hab ich Tomaten auf den Augen ..?
EDIT: Der open() Aufruf vor teardown ist natürlich Debugging Müll, weil Nose "print" und "sys.stdout.write" verschluckt. Achja, und das plugin.load_module lädt nur mithilfe von imp eine Python Datei, sind 5 Zeilen Code, bloß try / finally und imp.acquire_lock() usw.