Esempio n. 1
0
 def setUp(self):
     PluginRegistry.clear()
     self.registry = PluginRegistry()
     
     def ping(): 
         return ''
     self.ping = ping
     self.regex = r'^ping (.+)$'
Esempio n. 2
0
 def setUp(self):
     self.registry = PluginRegistry()
     
     def ping(**kwargs):
         return ''
     self.ping = ping
     self.regex = r'^ping (.+)$'
     self.compiled_regex = re.compile(self.regex)
Esempio n. 3
0
class PluginRegistryTest(TestCase):
    
    def setUp(self):
        self.registry = PluginRegistry()
        
        def ping(**kwargs):
            return ''
        self.ping = ping
        self.regex = r'^ping (.+)$'
        self.compiled_regex = re.compile(self.regex)
    

    def test_register_plugin(self):
        
        assert len(self.registry.plugins) == 0
        
        self.registry.register(self.ping.__name__, self.regex, self.ping)
        
        assert len(self.registry.plugins) == 1
        assert self.registry.plugins['ping'] == (self.compiled_regex, self.ping)
        
        def other_ping(**kw):
            return ''
        
        # ignore duplicates        
        self.registry.register('ping', self.regex, other_ping)
        
        assert len(self.registry.plugins) == 1
        assert self.registry.plugins['ping'] == (self.compiled_regex, self.ping)
    
    def test_unregister_plugin_by_name(self):
        
        assert len(self.registry.plugins) == 0
        
        self.registry.register(self.ping.__name__, self.regex, self.ping)
        
        assert len(self.registry.plugins) == 1
        
        self.registry.unregister('ping')     # by name
        
        assert len(self.registry.plugins) == 0
    
    def test_unregister_plugin_by_callable(self):

        self.registry.register(self.ping.__name__, self.regex, self.ping)
        
        assert len(self.registry.plugins) == 1
        
        self.registry.unregister(self.ping)     # by callable, using __name__ attribute
        
        assert len(self.registry.plugins) == 0
    
    
    def test_clear(self):
        self.registry.register(self.ping.__name__, self.regex, self.ping)
        
        assert len(self.registry.plugins) == 1
        
        self.registry.clear()
        
        assert len(self.registry.plugins) == 0