def setUp(self): PluginRegistry.clear() self.registry = PluginRegistry() def ping(): return '' self.ping = ping self.regex = r'^ping (.+)$'
def setUp(self): self.registry = PluginRegistry() def ping(**kwargs): return '' self.ping = ping self.regex = r'^ping (.+)$' self.compiled_regex = re.compile(self.regex)
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