def test_disable_dependendents(self): """Disable a plugin with dependents.""" p = PluginManager(None) events = [] A.plugin_end = lambda s: events.append('end_a') B.plugin_end = lambda s: events.append('end_b') F.plugin_end = lambda s: events.append('end_f') p.enable('f') p.disable('a') self.assertEqual(len(p), 1, "Wrong number of enabled plugins.") self.assertTrue('end_f' in events, "Dependent F not disabled.") self.assertTrue('end_a' in events, "Plugin A not disabled.")
def test_disable_cyclic_dependents(self): """Disable a plugin with cyclic dependents.""" p = PluginManager(None) events = [] B.plugin_end = lambda s: events.append('end_b') C.plugin_end = lambda s: events.append('end_c') D.plugin_end = lambda s: events.append('end_d') p.enable('c') p.disable('b') self.assertEqual(len(p), 0, "Wrong number of enabled plugins.") self.assertTrue('end_b' in events, "Plugin B not disabled.") self.assertTrue('end_c' in events, "Dependent C not disabled.") self.assertTrue('end_d' in events, "Dependent D not disabled.")
def test_disable(self): """Disable a single plugin.""" p = PluginManager(None) events = [] def init(self): events.append('init') def end(self): events.append('end') A.plugin_init = init A.plugin_end = end p.enable('a') p.disable('a') self.assertEqual(len(p), 0, "Wrong number of enabled plugins.") self.assertEqual(events, ['init', 'end'], "Plugin lifecycle methods not called.")