nosetest plugin now supports fallback to module level setup
--HG-- branch : trunk
This commit is contained in:
parent
861f34fe90
commit
82caacd633
|
@ -66,7 +66,9 @@ def pytest_runtest_setup(item):
|
||||||
if isinstance(gen.parent, py.test.collect.Instance):
|
if isinstance(gen.parent, py.test.collect.Instance):
|
||||||
call_optional(gen.parent.obj, 'setup')
|
call_optional(gen.parent.obj, 'setup')
|
||||||
gen._nosegensetup = True
|
gen._nosegensetup = True
|
||||||
call_optional(item.obj, 'setup')
|
if not call_optional(item.obj, 'setup'):
|
||||||
|
# call module level setup if there is no object level one
|
||||||
|
call_optional(item.parent.obj, 'setup')
|
||||||
|
|
||||||
def pytest_runtest_teardown(item):
|
def pytest_runtest_teardown(item):
|
||||||
if isinstance(item, py.test.collect.Function):
|
if isinstance(item, py.test.collect.Function):
|
||||||
|
@ -83,3 +85,6 @@ def call_optional(obj, name):
|
||||||
method = getattr(obj, name, None)
|
method = getattr(obj, name, None)
|
||||||
if method:
|
if method:
|
||||||
method()
|
method()
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
|
|
@ -85,3 +85,17 @@ def test_nose_test_generator_fixtures(testdir):
|
||||||
])
|
])
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def test_module_level_setup(testdir):
|
||||||
|
testdir.makepyfile("""
|
||||||
|
items = {}
|
||||||
|
def setup():
|
||||||
|
items[1]=1
|
||||||
|
|
||||||
|
def test_setup_changed_stuff():
|
||||||
|
assert items
|
||||||
|
""")
|
||||||
|
result = testdir.runpytest('-p', 'nose')
|
||||||
|
result.stdout.fnmatch_lines([
|
||||||
|
"*1 passed*",
|
||||||
|
])
|
||||||
|
|
Loading…
Reference in New Issue