better tests for the nose plugin, support module level teardown
--HG-- branch : trunk
This commit is contained in:
parent
82caacd633
commit
8e5efa7d6d
|
@ -72,7 +72,8 @@ def pytest_runtest_setup(item):
|
|||
|
||||
def pytest_runtest_teardown(item):
|
||||
if isinstance(item, py.test.collect.Function):
|
||||
call_optional(item.obj, 'teardown')
|
||||
if not call_optional(item.obj, 'teardown'):
|
||||
call_optional(item.parent.obj, 'teardown')
|
||||
#if hasattr(item.parent, '_nosegensetup'):
|
||||
# #call_optional(item._nosegensetup, 'teardown')
|
||||
# del item.parent._nosegensetup
|
||||
|
|
|
@ -88,14 +88,30 @@ def test_nose_test_generator_fixtures(testdir):
|
|||
|
||||
def test_module_level_setup(testdir):
|
||||
testdir.makepyfile("""
|
||||
from nose.tools import with_setup
|
||||
items = {}
|
||||
def setup():
|
||||
items[1]=1
|
||||
|
||||
def test_setup_changed_stuff():
|
||||
assert items
|
||||
def teardown():
|
||||
del items[1]
|
||||
|
||||
def setup2():
|
||||
items[2] = 2
|
||||
|
||||
def teardown2():
|
||||
del items[2]
|
||||
|
||||
def test_setup_module_setup():
|
||||
assert items[1] == 1
|
||||
|
||||
@with_setup(setup2, teardown2)
|
||||
def test_local_setup():
|
||||
assert items[2] == 2
|
||||
assert 1 not in items
|
||||
|
||||
""")
|
||||
result = testdir.runpytest('-p', 'nose')
|
||||
result.stdout.fnmatch_lines([
|
||||
"*1 passed*",
|
||||
"*2 passed*",
|
||||
])
|
||||
|
|
Loading…
Reference in New Issue