43 lines
1.2 KiB
Python
43 lines
1.2 KiB
Python
|
def setup_module(module):
|
||
|
module.TestStateFullThing.classcount = 0
|
||
|
|
||
|
class TestStateFullThing:
|
||
|
def setup_class(cls):
|
||
|
cls.classcount += 1
|
||
|
|
||
|
def teardown_class(cls):
|
||
|
cls.classcount -= 1
|
||
|
|
||
|
def setup_method(self, method):
|
||
|
self.id = eval(method.func_name[5:])
|
||
|
|
||
|
def test_42(self):
|
||
|
assert self.classcount == 1
|
||
|
assert self.id == 42
|
||
|
|
||
|
def test_23(self):
|
||
|
assert self.classcount == 1
|
||
|
assert self.id == 23
|
||
|
|
||
|
def teardown_module(module):
|
||
|
assert module.TestStateFullThing.classcount == 0
|
||
|
|
||
|
""" For this example the control flow happens as follows::
|
||
|
import test_setup_flow_example
|
||
|
setup_module(test_setup_flow_example)
|
||
|
setup_class(TestStateFullThing)
|
||
|
instance = TestStateFullThing()
|
||
|
setup_method(instance, instance.test_42)
|
||
|
instance.test_42()
|
||
|
setup_method(instance, instance.test_23)
|
||
|
instance.test_23()
|
||
|
teardown_class(TestStateFullThing)
|
||
|
teardown_module(test_setup_flow_example)
|
||
|
|
||
|
Note that ``setup_class(TestStateFullThing)`` is called and not
|
||
|
``TestStateFullThing.setup_class()`` which would require you
|
||
|
to insert ``setup_class = classmethod(setup_class)`` to make
|
||
|
your setup function callable.
|
||
|
"""
|
||
|
|