strip bound wrappers of class setup/tardown, fixes #140
on python3 im_func is replaced by __func__
This commit is contained in:
parent
fe1c35f8d0
commit
0e3779b14f
|
@ -311,12 +311,14 @@ class Class(PyCollectorMixin, pytest.Collector):
|
||||||
setup_class = getattr(self.obj, 'setup_class', None)
|
setup_class = getattr(self.obj, 'setup_class', None)
|
||||||
if setup_class is not None:
|
if setup_class is not None:
|
||||||
setup_class = getattr(setup_class, 'im_func', setup_class)
|
setup_class = getattr(setup_class, 'im_func', setup_class)
|
||||||
|
setup_class = getattr(setup_class, '__func__', setup_class)
|
||||||
setup_class(self.obj)
|
setup_class(self.obj)
|
||||||
|
|
||||||
def teardown(self):
|
def teardown(self):
|
||||||
teardown_class = getattr(self.obj, 'teardown_class', None)
|
teardown_class = getattr(self.obj, 'teardown_class', None)
|
||||||
if teardown_class is not None:
|
if teardown_class is not None:
|
||||||
teardown_class = getattr(teardown_class, 'im_func', teardown_class)
|
teardown_class = getattr(teardown_class, 'im_func', teardown_class)
|
||||||
|
teardown_class = getattr(teardown_class, '__func__', teardown_class)
|
||||||
teardown_class(self.obj)
|
teardown_class(self.obj)
|
||||||
|
|
||||||
class Instance(PyCollectorMixin, pytest.Collector):
|
class Instance(PyCollectorMixin, pytest.Collector):
|
||||||
|
|
|
@ -56,6 +56,24 @@ class TestClass:
|
||||||
"*collected 0*",
|
"*collected 0*",
|
||||||
])
|
])
|
||||||
|
|
||||||
|
def test_setup_teardown_class_as_classmethod(self, testdir):
|
||||||
|
testdir.makepyfile("""
|
||||||
|
class TestClassMethod:
|
||||||
|
@classmethod
|
||||||
|
def setup_class(cls):
|
||||||
|
pass
|
||||||
|
def test_1(self):
|
||||||
|
pass
|
||||||
|
@classmethod
|
||||||
|
def teardown_class(cls):
|
||||||
|
pass
|
||||||
|
""")
|
||||||
|
result = testdir.runpytest()
|
||||||
|
result.stdout.fnmatch_lines([
|
||||||
|
"*1 passed*",
|
||||||
|
])
|
||||||
|
|
||||||
|
|
||||||
class TestGenerator:
|
class TestGenerator:
|
||||||
def test_generative_functions(self, testdir):
|
def test_generative_functions(self, testdir):
|
||||||
modcol = testdir.getmodulecol("""
|
modcol = testdir.getmodulecol("""
|
||||||
|
|
Loading…
Reference in New Issue