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:  |         Simple example:  | ||||||
|         MultiCall([list1.append, list2.append], 42).execute() |         MultiCall([list1.append, list2.append], 42).execute() | ||||||
|     """ |     """ | ||||||
|     NONEASRESULT = object() |  | ||||||
| 
 | 
 | ||||||
|     def __init__(self, methods, *args, **kwargs): |     def __init__(self, methods, *args, **kwargs): | ||||||
|         self.methods = methods[:] |         self.methods = methods[:] | ||||||
|  | @ -26,8 +25,6 @@ class MultiCall: | ||||||
|                 self.results = [res] |                 self.results = [res] | ||||||
|                 break |                 break | ||||||
|             if res is not None: |             if res is not None: | ||||||
|                 if res is self.NONEASRESULT: |  | ||||||
|                     res = None |  | ||||||
|                 self.results.append(res)  |                 self.results.append(res)  | ||||||
|                 if firstresult: |                 if firstresult: | ||||||
|                     break  |                     break  | ||||||
|  | @ -99,15 +96,6 @@ class Registry: | ||||||
|             l.reverse() |             l.reverse() | ||||||
|         return l |         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:  | class Hooks:  | ||||||
|     def __init__(self, hookspecs, registry=None): |     def __init__(self, hookspecs, registry=None): | ||||||
|         self._hookspecs = hookspecs |         self._hookspecs = hookspecs | ||||||
|  |  | ||||||
|  | @ -74,6 +74,14 @@ class TestMultiCall: | ||||||
|         #res = call.execute(firstresult=True) |         #res = call.execute(firstresult=True) | ||||||
|         #assert res == 10 |         #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: | class TestRegistry: | ||||||
|     def test_MultiCall(self): |     def test_MultiCall(self): | ||||||
|  | @ -97,28 +105,6 @@ class TestRegistry: | ||||||
|         assert not registry.isregistered(my) |         assert not registry.isregistered(my) | ||||||
|         assert list(registry) == [my2] |         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): |     def test_listattr(self): | ||||||
|         plugins = Registry() |         plugins = Registry() | ||||||
|         class api1: |         class api1: | ||||||
|  |  | ||||||
|  | @ -68,6 +68,7 @@ class PluginHooks: | ||||||
|     # |     # | ||||||
|     def pytest_itemrun(self, item, pdb=None): |     def pytest_itemrun(self, item, pdb=None): | ||||||
|         """ run given test item and return test report. """  |         """ run given test item and return test report. """  | ||||||
|  |     pytest_itemrun.firstresult = True | ||||||
| 
 | 
 | ||||||
|     def pytest_pyfunc_call(self, pyfuncitem, args, kwargs): |     def pytest_pyfunc_call(self, pyfuncitem, args, kwargs): | ||||||
|         """ return True if we consumed/did the call to the python function item. """ |         """ 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=()): |     def listattr(self, attrname, plugins=None, extra=()): | ||||||
|         return self.comregistry.listattr(attrname, plugins=plugins, extra=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): |     def notify_exception(self, excinfo=None): | ||||||
|         if excinfo is None: |         if excinfo is None: | ||||||
|             excinfo = py.code.ExceptionInfo() |             excinfo = py.code.ExceptionInfo() | ||||||
|  | @ -144,7 +141,7 @@ class PluginManager(object): | ||||||
|         config.pluginmanager.unregister(self) |         config.pluginmanager.unregister(self) | ||||||
| 
 | 
 | ||||||
|     def do_itemrun(self, item, pdb=None): |     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: |         if res is None: | ||||||
|             raise ValueError("could not run %r" %(item,)) |             raise ValueError("could not run %r" %(item,)) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -191,26 +191,6 @@ class TestPytestPluginInteractions: | ||||||
|         assert pluginmanager.getfirst("x") == 1 |         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): |     def test_listattr(self): | ||||||
|         pluginmanager = PluginManager() |         pluginmanager = PluginManager() | ||||||
|         class My2: |         class My2: | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue