remove superflous registry.call_firstresult and NONEASFIRSTRESULT logic
--HG-- branch : trunk
This commit is contained in:
		
							parent
							
								
									4784046249
								
							
						
					
					
						commit
						219e627f87
					
				
							
								
								
									
										12
									
								
								py/_com.py
								
								
								
								
							
							
						
						
									
										12
									
								
								py/_com.py
								
								
								
								
							|  | @ -10,7 +10,6 @@ class MultiCall: | |||
|         Simple example:  | ||||
|         MultiCall([list1.append, list2.append], 42).execute() | ||||
|     """ | ||||
|     NONEASRESULT = object() | ||||
| 
 | ||||
|     def __init__(self, methods, *args, **kwargs): | ||||
|         self.methods = methods[:] | ||||
|  | @ -26,8 +25,6 @@ class MultiCall: | |||
|                 self.results = [res] | ||||
|                 break | ||||
|             if res is not None: | ||||
|                 if res is self.NONEASRESULT: | ||||
|                     res = None | ||||
|                 self.results.append(res)  | ||||
|                 if firstresult: | ||||
|                     break  | ||||
|  | @ -99,15 +96,6 @@ class Registry: | |||
|             l.reverse() | ||||
|         return l | ||||
| 
 | ||||
|     def call_firstresult(self, methname, *args, **kwargs): | ||||
|         """ return first non-None result of a plugin method. """  | ||||
|         return MultiCall(self.listattr(methname), *args, **kwargs).execute(firstresult=True) | ||||
| 
 | ||||
|     def call_plugin(self, plugin, methname, *args, **kwargs): | ||||
|         return MultiCall(self.listattr(methname, plugins=[plugin]),  | ||||
|                     *args, **kwargs).execute(firstresult=True) | ||||
| 
 | ||||
| 
 | ||||
| class Hooks:  | ||||
|     def __init__(self, hookspecs, registry=None): | ||||
|         self._hookspecs = hookspecs | ||||
|  |  | |||
|  | @ -74,6 +74,14 @@ class TestMultiCall: | |||
|         #res = call.execute(firstresult=True) | ||||
|         #assert res == 10 | ||||
| 
 | ||||
|     def test_call_none_is_no_result(self): | ||||
|         def m1(): | ||||
|             return 1 | ||||
|         def m2(): | ||||
|             return None | ||||
|         mc = MultiCall([m1, m2]) | ||||
|         res = mc.execute(firstresult=True) | ||||
|         assert res == 1 | ||||
| 
 | ||||
| class TestRegistry: | ||||
|     def test_MultiCall(self): | ||||
|  | @ -97,28 +105,6 @@ class TestRegistry: | |||
|         assert not registry.isregistered(my) | ||||
|         assert list(registry) == [my2] | ||||
| 
 | ||||
|     def test_call_none_is_no_result(self): | ||||
|         plugins = Registry() | ||||
|         class api1: | ||||
|             def m(self): | ||||
|                 return None | ||||
|         class api2: | ||||
|             def m(self, __call__): | ||||
|                 return 41 | ||||
|         plugins.register(api1()) | ||||
|         plugins.register(api1()) | ||||
|         plugins.register(api2()) | ||||
|         assert plugins.call_firstresult('m') == 41 | ||||
| 
 | ||||
|     def test_call_noneasresult(self): | ||||
|         plugins = Registry() | ||||
|         class api1: | ||||
|             def m(self, __call__): | ||||
|                 return __call__.NONEASRESULT | ||||
|         plugins.register(api1()) | ||||
|         plugins.register(api1()) | ||||
|         assert plugins.call_firstresult('m') is None | ||||
| 
 | ||||
|     def test_listattr(self): | ||||
|         plugins = Registry() | ||||
|         class api1: | ||||
|  |  | |||
|  | @ -68,6 +68,7 @@ class PluginHooks: | |||
|     # | ||||
|     def pytest_itemrun(self, item, pdb=None): | ||||
|         """ run given test item and return test report. """  | ||||
|     pytest_itemrun.firstresult = True | ||||
| 
 | ||||
|     def pytest_pyfunc_call(self, pyfuncitem, args, kwargs): | ||||
|         """ return True if we consumed/did the call to the python function item. """ | ||||
|  |  | |||
|  | @ -108,9 +108,6 @@ class PluginManager(object): | |||
|     def listattr(self, attrname, plugins=None, extra=()): | ||||
|         return self.comregistry.listattr(attrname, plugins=plugins, extra=extra) | ||||
| 
 | ||||
|     def call_firstresult(self, *args, **kwargs): | ||||
|         return self.comregistry.call_firstresult(*args, **kwargs) | ||||
| 
 | ||||
|     def notify_exception(self, excinfo=None): | ||||
|         if excinfo is None: | ||||
|             excinfo = py.code.ExceptionInfo() | ||||
|  | @ -144,7 +141,7 @@ class PluginManager(object): | |||
|         config.pluginmanager.unregister(self) | ||||
| 
 | ||||
|     def do_itemrun(self, item, pdb=None): | ||||
|         res = self.comregistry.call_firstresult("pytest_itemrun", item=item, pdb=pdb) | ||||
|         res = self.hook.pytest_itemrun(item=item, pdb=pdb)  | ||||
|         if res is None: | ||||
|             raise ValueError("could not run %r" %(item,)) | ||||
| 
 | ||||
|  |  | |||
|  | @ -191,26 +191,6 @@ class TestPytestPluginInteractions: | |||
|         assert pluginmanager.getfirst("x") == 1 | ||||
| 
 | ||||
| 
 | ||||
|     def test_call_firstresult(self): | ||||
|         pluginmanager = PluginManager() | ||||
|         class My1: | ||||
|             def method(self): | ||||
|                 pass | ||||
|         class My2: | ||||
|             def method(self): | ||||
|                 return True  | ||||
|         class My3: | ||||
|             def method(self): | ||||
|                 return None | ||||
|         assert pluginmanager.call_firstresult("method") is None | ||||
|         assert pluginmanager.call_firstresult("methodnotexists") is None | ||||
|         pluginmanager.register(My1()) | ||||
|         assert pluginmanager.call_firstresult("method") is None | ||||
|         pluginmanager.register(My2()) | ||||
|         assert pluginmanager.call_firstresult("method") == True | ||||
|         pluginmanager.register(My3()) | ||||
|         assert pluginmanager.call_firstresult("method") == True | ||||
| 
 | ||||
|     def test_listattr(self): | ||||
|         pluginmanager = PluginManager() | ||||
|         class My2: | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue