45 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			45 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.__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.
 | 
						|
"""
 |