示例#1
0
    def test_plugins(self):
        application = Application()
        self.assertEqual(0, len(application.plugins))

        invoked = [False, False]

        def simple_plugin(event, monitor, context):
            invoked[0] = True

        class SimplePlugin(object):

            def __init__(self, event, monitor, context):
                self.event = event

            def __call__(self):
                invoked[1] = True

        application.install_plugin(simple_plugin)
        self.assertEqual(1, len(application.plugins))
        self.assertEqual(simple_plugin, application.plugins[0])
        application.install_plugin(SimplePlugin)
        self.assertEqual(2, len(application.plugins))
        self.assertEqual(SimplePlugin, application.plugins[1])

        self.assert_(not invoked[0])
        self.assert_(not invoked[1])
        # passing dummy objects
        application.invoke_plugins(object(), object())
        self.assert_(invoked[0])
        self.assert_(invoked[1])
示例#2
0
    def test_plugin_context(self):
        application = Application()
        application.update_variables(dict(var1=123, var2='HELLO'))

        invoked_context = {}

        def context_plugin(event, monitor, context):
            invoked_context.update(context)

        application.install_plugin(context_plugin)
        self.assertEqual(0, len(invoked_context))
        # passing dummy objects
        application.invoke_plugins(object(), object())
        self.assertEqual(2, len(invoked_context))
        self.assertEqual(123, invoked_context['var1'])
        self.assertEqual('HELLO', invoked_context['var2'])