support nose style argument-free setup/teardown functions
--HG-- branch : trunk
This commit is contained in:
		
							parent
							
								
									5f3bdf2d0b
								
							
						
					
					
						commit
						6f80c985fb
					
				|  | @ -161,13 +161,24 @@ class Module(py.test.collect.File, PyCollectorMixin): | ||||||
|     def setup(self):  |     def setup(self):  | ||||||
|         if getattr(self.obj, 'disabled', 0): |         if getattr(self.obj, 'disabled', 0): | ||||||
|             py.test.skip("%r is disabled" %(self.obj,)) |             py.test.skip("%r is disabled" %(self.obj,)) | ||||||
|         mod = self.obj |         if hasattr(self.obj, 'setup_module'):  | ||||||
|         if hasattr(mod, 'setup_module'):  |             #XXX: nose compat hack, move to nose plugin | ||||||
|             self.obj.setup_module(mod) |             # if it takes a positional arg, its probably a py.test style one | ||||||
|  |             # so we pass the current module object | ||||||
|  |             if inspect.getargspec(self.obj.setup_module)[0]: | ||||||
|  |                 self.obj.setup_module(self.obj) | ||||||
|  |             else: | ||||||
|  |                 self.obj.setup_module() | ||||||
| 
 | 
 | ||||||
|     def teardown(self):  |     def teardown(self):  | ||||||
|         if hasattr(self.obj, 'teardown_module'):  |         if hasattr(self.obj, 'teardown_module'):  | ||||||
|             self.obj.teardown_module(self.obj)  |             #XXX: nose compat hack, move to nose plugin | ||||||
|  |             # if it takes a positional arg, its probably a py.test style one | ||||||
|  |             # so we pass the current module object | ||||||
|  |             if inspect.getargspec(self.obj.teardown_module)[0]: | ||||||
|  |                 self.obj.teardown_module(self.obj) | ||||||
|  |             else: | ||||||
|  |                 self.obj.teardown_module() | ||||||
| 
 | 
 | ||||||
| class Class(PyCollectorMixin, py.test.collect.Collector):  | class Class(PyCollectorMixin, py.test.collect.Collector):  | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -115,3 +115,24 @@ def test_module_level_setup(testdir): | ||||||
|     result.stdout.fnmatch_lines([ |     result.stdout.fnmatch_lines([ | ||||||
|         "*2 passed*", |         "*2 passed*", | ||||||
|     ]) |     ]) | ||||||
|  | 
 | ||||||
|  | def test_nose_style_setup_teardown(testdir): | ||||||
|  |     testdir.makepyfile(""" | ||||||
|  |         l = [] | ||||||
|  |         def setup_module(): | ||||||
|  |             l.append(1) | ||||||
|  | 
 | ||||||
|  |         def teardown_module(): | ||||||
|  |             del l[0] | ||||||
|  | 
 | ||||||
|  |         def test_hello(): | ||||||
|  |             assert l == [1] | ||||||
|  | 
 | ||||||
|  |         def test_world(): | ||||||
|  |             assert l == [1] | ||||||
|  |         """) | ||||||
|  |     result = testdir.runpytest('-p', 'nose') | ||||||
|  |     result.stdout.fnmatch_lines([ | ||||||
|  |         "*2 passed*", | ||||||
|  |     ]) | ||||||
|  | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue