[svn r62614] implementing __call__.exclude_other_results() to allow plugin hooks to
exclude results from other plugins. --HG-- branch : trunk
This commit is contained in:
parent
ad06cfdc9d
commit
2d98dbfc81
|
@ -52,6 +52,9 @@ class MultiCall:
|
||||||
res = self.currentmethod(self, *self.args, **self.kwargs)
|
res = self.currentmethod(self, *self.args, **self.kwargs)
|
||||||
else:
|
else:
|
||||||
res = self.currentmethod(*self.args, **self.kwargs)
|
res = self.currentmethod(*self.args, **self.kwargs)
|
||||||
|
if hasattr(self, '_ex1'):
|
||||||
|
self.results = [res]
|
||||||
|
break
|
||||||
if res is not None:
|
if res is not None:
|
||||||
if res is self.NONEASRESULT:
|
if res is self.NONEASRESULT:
|
||||||
res = None
|
res = None
|
||||||
|
@ -63,6 +66,9 @@ class MultiCall:
|
||||||
if self.results:
|
if self.results:
|
||||||
return self.results[-1]
|
return self.results[-1]
|
||||||
|
|
||||||
|
def exclude_other_results(self):
|
||||||
|
self._ex1 = True
|
||||||
|
|
||||||
class PyPlugins:
|
class PyPlugins:
|
||||||
"""
|
"""
|
||||||
Manage Plugins: Load plugins and manage calls to plugins.
|
Manage Plugins: Load plugins and manage calls to plugins.
|
||||||
|
|
|
@ -49,6 +49,22 @@ class TestMultiCall:
|
||||||
call = MultiCall([n, m])
|
call = MultiCall([n, m])
|
||||||
res = call.execute(firstresult=True)
|
res = call.execute(firstresult=True)
|
||||||
assert res == 2
|
assert res == 2
|
||||||
|
|
||||||
|
def test_call_exclude_other_results(self):
|
||||||
|
def m(__call__):
|
||||||
|
__call__.exclude_other_results()
|
||||||
|
return 10
|
||||||
|
|
||||||
|
def n():
|
||||||
|
return 1
|
||||||
|
|
||||||
|
call = MultiCall([n, n, m, n])
|
||||||
|
res = call.execute()
|
||||||
|
assert res == [10]
|
||||||
|
# doesn't really make sense for firstresult-mode - because
|
||||||
|
# we might not have had a chance to run at all.
|
||||||
|
#res = call.execute(firstresult=True)
|
||||||
|
#assert res == 10
|
||||||
|
|
||||||
|
|
||||||
class TestPyPlugins:
|
class TestPyPlugins:
|
||||||
|
|
Loading…
Reference in New Issue