Example #1
0
    def test_hooks_extra_plugins(self):
        registry = Registry()

        class Api:
            def hello(self, arg):
                pass

        hookrelay = HookRelay(hookspecs=Api, registry=registry)
        hook_hello = hookrelay.hello

        class Plugin:
            def hello(self, arg):
                return arg + 1

        registry.register(Plugin())

        class Plugin2:
            def hello(self, arg):
                return arg + 2

        newhook = hookrelay._makecall("hello", extralookup=Plugin2())
        l = newhook(arg=3)
        assert l == [5, 4]
        l2 = hook_hello(arg=3)
        assert l2 == [4]
Example #2
0
    def test_firstresult_definition(self):
        registry = Registry()
        class Api:
            def hello(self, arg): pass
            hello.firstresult = True

        mcm = HookRelay(hookspecs=Api, registry=registry)
        class Plugin:
            def hello(self, arg):
                return arg + 1
        registry.register(Plugin())
        res = mcm.hello(arg=3)
        assert res == 4
Example #3
0
    def test_happypath(self):
        registry = Registry()
        class Api:
            def hello(self, arg):
                pass

        mcm = HookRelay(hookspecs=Api, registry=registry)
        assert hasattr(mcm, 'hello')
        assert repr(mcm.hello).find("hello") != -1
        class Plugin:
            def hello(self, arg):
                return arg + 1
        registry.register(Plugin())
        l = mcm.hello(arg=3)
        assert l == [4]
        assert not hasattr(mcm, 'world')
Example #4
0
    def test_firstresult_definition(self):
        registry = Registry()

        class Api:
            def hello(self, arg):
                pass

            hello.firstresult = True

        mcm = HookRelay(hookspecs=Api, registry=registry)

        class Plugin:
            def hello(self, arg):
                return arg + 1

        registry.register(Plugin())
        res = mcm.hello(arg=3)
        assert res == 4
Example #5
0
    def test_only_kwargs(self):
        registry = Registry()

        class Api:
            def hello(self, arg):
                pass

        mcm = HookRelay(hookspecs=Api, registry=registry)
        py.test.raises(TypeError, "mcm.hello(3)")
Example #6
0
    def test_happypath(self):
        registry = Registry()

        class Api:
            def hello(self, arg):
                pass

        mcm = HookRelay(hookspecs=Api, registry=registry)
        assert hasattr(mcm, 'hello')
        assert repr(mcm.hello).find("hello") != -1

        class Plugin:
            def hello(self, arg):
                return arg + 1

        registry.register(Plugin())
        l = mcm.hello(arg=3)
        assert l == [4]
        assert not hasattr(mcm, 'world')
Example #7
0
 def test_hooks_extra_plugins(self):
     registry = Registry()
     class Api:
         def hello(self, arg):
             pass
     hookrelay = HookRelay(hookspecs=Api, registry=registry)
     hook_hello = hookrelay.hello
     class Plugin:
         def hello(self, arg):
             return arg + 1
     registry.register(Plugin())
     class Plugin2:
         def hello(self, arg):
             return arg + 2
     newhook = hookrelay._makecall("hello", extralookup=Plugin2())
     l = newhook(arg=3)
     assert l == [5, 4]
     l2 = hook_hello(arg=3)
     assert l2 == [4]
Example #8
0
    def test_default_plugins(self):
        class Api:
            pass

        mcm = HookRelay(hookspecs=Api, registry=py._com.comregistry)
        assert mcm._registry == py._com.comregistry