def test_call_methods(self): plugins = PyPlugins() class api1: def m(self, __call__, x): return x class api2: def m(self, __call__, x, y=33): return y plugins.register(api1()) plugins.register(api2()) res = plugins.call_firstresult("m", x=5) assert plugins.call_firstresult("notexist") is None assert res == 33 reslist = plugins.call_each("m", x=5) assert len(reslist) == 2 assert 5 in reslist assert 33 in reslist assert plugins.call_each("notexist") == [] assert plugins.call_plugin(api1(), 'm', x=12) == 12 assert plugins.call_plugin(api2(), 't') is None