def test_sequencer_removal(self): seq = Sequencer() seq.add('A', 'B') seq.add('B', 'C') seq.add('C', 'D') preds = {'B': set(['A']), 'C': set(['B']), 'D': set(['C'])} succs = {'A': set(['B']), 'B': set(['C']), 'C': set(['D'])} self.assertEqual(seq._preds, preds) self.assertEqual(seq._succs, succs) seq.remove_node('C') self.assertEqual(seq._preds, preds) self.assertEqual(seq._succs, succs) seq.remove_node('C', True) self.assertEqual(seq._preds, {'B': set(['A'])}) self.assertEqual(seq._succs, {'A': set(['B'])})
def test_sequencer_cycle(self): seq = Sequencer() seq.add('A', 'B') seq.add('B', 'C') seq.add('C', 'D') self.assertEqual(list(seq.get_steps('D')), ['A', 'B', 'C', 'D']) seq.add('C', 'A') self.assertEqual(list(seq.get_steps('D')), ['C', 'A', 'B', 'D']) self.assertFalse(seq.is_step('E')) self.assertRaises(ValueError, seq.get_steps, 'E') seq.add_node('E') self.assertTrue(seq.is_step('E')) self.assertEqual(list(seq.get_steps('E')), ['E']) seq.remove_node('E') self.assertFalse(seq.is_step('E')) self.assertRaises(ValueError, seq.get_steps, 'E') seq.remove('C', 'A') self.assertEqual(list(seq.get_steps('D')), ['A', 'B', 'C', 'D'])
def test_sequencer_removal(self): seq = Sequencer() seq.add('A', 'B') seq.add('B', 'C') seq.add('C', 'D') preds = { 'B': set(['A']), 'C': set(['B']), 'D': set(['C']) } succs = { 'A': set(['B']), 'B': set(['C']), 'C': set(['D']) } self.assertEqual(seq._preds, preds) self.assertEqual(seq._succs, succs) seq.remove_node('C') self.assertEqual(seq._preds, preds) self.assertEqual(seq._succs, succs) seq.remove_node('C', True) self.assertEqual(seq._preds, {'B': set(['A'])}) self.assertEqual(seq._succs, {'A': set(['B'])})