56 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
| 
 | |
| #
 | |
| # test correct setup/teardowns at
 | |
| # module, class, and instance level
 | |
| 
 | |
| modlevel = []
 | |
| def setup_module(module):
 | |
|     assert not modlevel
 | |
|     module.modlevel.append(42)
 | |
| 
 | |
| def teardown_module(module):
 | |
|     modlevel.pop()
 | |
| 
 | |
| def setup_function(function):
 | |
|     function.answer = 17
 | |
| 
 | |
| def teardown_function(function):
 | |
|     del function.answer
 | |
| 
 | |
| def test_modlevel():
 | |
|     assert modlevel[0] == 42
 | |
|     assert test_modlevel.answer == 17
 | |
| 
 | |
| class TestSimpleClassSetup:
 | |
|     clslevel = []
 | |
|     def setup_class(cls):
 | |
|         cls.clslevel.append(23)
 | |
| 
 | |
|     def teardown_class(cls):
 | |
|         cls.clslevel.pop()
 | |
| 
 | |
|     def test_classlevel(self):
 | |
|         assert self.clslevel[0] == 23
 | |
| 
 | |
|     def test_modulelevel(self):
 | |
|         print modlevel
 | |
|         assert modlevel == [42]
 | |
| 
 | |
| class TestInheritedClassSetupStillWorks(TestSimpleClassSetup):
 | |
|     def test_classlevel_anothertime(self):
 | |
|         assert self.clslevel == [23]
 | |
| 
 | |
| class TestSetupTeardownOnInstance(TestSimpleClassSetup):
 | |
|     def setup_method(self, method):
 | |
|         self.clslevel.append(17)
 | |
| 
 | |
|     def teardown_method(self, method):
 | |
|         x = self.clslevel.pop()
 | |
|         assert x == 17
 | |
| 
 | |
|     def test_setup(self):
 | |
|         assert self.clslevel[-1] == 17
 | |
| 
 | |
| def test_teardown_method_worked(): 
 | |
|     assert not TestSetupTeardownOnInstance.clslevel 
 |