re-introduce compatibility attributes on collection nodes to keep compatible with code like::
def pytest_collect_file(path, parent):
        ... parent.Module(...)
--HG--
branch : trunk
			
			
This commit is contained in:
		
							parent
							
								
									4480401119
								
							
						
					
					
						commit
						5fc87acf9b
					
				|  | @ -5,7 +5,7 @@ see http://pytest.org for documentation and details | ||||||
| 
 | 
 | ||||||
| (c) Holger Krekel and others, 2004-2010 | (c) Holger Krekel and others, 2004-2010 | ||||||
| """ | """ | ||||||
| __version__ = '2.0.0.dev8' | __version__ = '2.0.0.dev9' | ||||||
| 
 | 
 | ||||||
| __all__ = ['config', 'cmdline'] | __all__ = ['config', 'cmdline'] | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -308,6 +308,14 @@ class HookProxy: | ||||||
|             return hookmethod.pcall(plugins, **kwargs) |             return hookmethod.pcall(plugins, **kwargs) | ||||||
|         return call_matching_hooks |         return call_matching_hooks | ||||||
| 
 | 
 | ||||||
|  | def compatproperty(name): | ||||||
|  |     def fget(self): | ||||||
|  |         #print "retrieving %r property from %s" %(name, self.fspath) | ||||||
|  |         py.log._apiwarn("2.0", "use py.test.collect.%s for " | ||||||
|  |             "Collection classes" % name) | ||||||
|  |         return getattr(pytest.collect, name) | ||||||
|  |     return property(fget) | ||||||
|  |      | ||||||
| class Node(object): | class Node(object): | ||||||
|     """ base class for all Nodes in the collection tree. |     """ base class for all Nodes in the collection tree. | ||||||
|     Collector subclasses have children, Items are terminal nodes.""" |     Collector subclasses have children, Items are terminal nodes.""" | ||||||
|  | @ -330,6 +338,12 @@ class Node(object): | ||||||
|         self.ihook = HookProxy(self) |         self.ihook = HookProxy(self) | ||||||
|         self.keywords = {self.name: True} |         self.keywords = {self.name: True} | ||||||
| 
 | 
 | ||||||
|  |     Module = compatproperty("Module") | ||||||
|  |     Class = compatproperty("Class") | ||||||
|  |     Function = compatproperty("Function") | ||||||
|  |     File = compatproperty("File") | ||||||
|  |     Item = compatproperty("Item") | ||||||
|  | 
 | ||||||
|     def __repr__(self): |     def __repr__(self): | ||||||
|         if getattr(self.config.option, 'debug', False): |         if getattr(self.config.option, 'debug', False): | ||||||
|             return "<%s %r %0x>" %(self.__class__.__name__, |             return "<%s %r %0x>" %(self.__class__.__name__, | ||||||
|  |  | ||||||
							
								
								
									
										2
									
								
								setup.py
								
								
								
								
							
							
						
						
									
										2
									
								
								setup.py
								
								
								
								
							|  | @ -22,7 +22,7 @@ def main(): | ||||||
|         name='pytest', |         name='pytest', | ||||||
|         description='py.test: simple powerful testing with Python', |         description='py.test: simple powerful testing with Python', | ||||||
|         long_description = long_description, |         long_description = long_description, | ||||||
|         version='2.0.0.dev8', |         version='2.0.0.dev9', | ||||||
|         url='http://pytest.org', |         url='http://pytest.org', | ||||||
|         license='MIT license', |         license='MIT license', | ||||||
|         platforms=['unix', 'linux', 'osx', 'cygwin', 'win32'], |         platforms=['unix', 'linux', 'osx', 'cygwin', 'win32'], | ||||||
|  |  | ||||||
|  | @ -6,6 +6,23 @@ class TestCollector: | ||||||
|         assert not issubclass(Collector, Item) |         assert not issubclass(Collector, Item) | ||||||
|         assert not issubclass(Item, Collector) |         assert not issubclass(Item, Collector) | ||||||
| 
 | 
 | ||||||
|  |     def test_compat_attributes(self, testdir, recwarn): | ||||||
|  |         modcol = testdir.getmodulecol(""" | ||||||
|  |             def test_pass(): pass | ||||||
|  |             def test_fail(): assert 0 | ||||||
|  |         """) | ||||||
|  |         recwarn.clear() | ||||||
|  |         assert modcol.Module == py.test.collect.Module | ||||||
|  |         recwarn.pop(DeprecationWarning) | ||||||
|  |         assert modcol.Class == py.test.collect.Class | ||||||
|  |         recwarn.pop(DeprecationWarning) | ||||||
|  |         assert modcol.Item == py.test.collect.Item | ||||||
|  |         recwarn.pop(DeprecationWarning) | ||||||
|  |         assert modcol.File == py.test.collect.File | ||||||
|  |         recwarn.pop(DeprecationWarning) | ||||||
|  |         assert modcol.Function == py.test.collect.Function | ||||||
|  |         recwarn.pop(DeprecationWarning) | ||||||
|  | 
 | ||||||
|     def test_check_equality(self, testdir): |     def test_check_equality(self, testdir): | ||||||
|         modcol = testdir.getmodulecol(""" |         modcol = testdir.getmodulecol(""" | ||||||
|             def test_pass(): pass |             def test_pass(): pass | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue