'Disable a plugin with cyclic dependents.'

def test_disable_cyclic_dependents(self):

    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.')
