def test_postorder_multiple_namespaces(self): from context import postorder startnode = DummyTask('startnode') dep1 = DummyTask('dep1') dep1.namespaces = ['c', 'd'] dep2 = DummyTask('dep2') dep2.namespaces = [''] startnode.dependencies = [dep1] dep1.dependencies = [dep2] context = DummyContext() generator = postorder(startnode, context) node = generator.next() self.assertEqual(node.name, 'dep2') self.assertEqual(node.namespace, '') self.assertEqual(node.context, context) node = generator.next() self.assertEqual(node.name, 'dep1') self.assertEqual(node.namespace, 'c') self.assertEqual(node.context, context) node = generator.next() self.assertEqual(node.name, 'dep1') self.assertEqual(node.namespace, 'd') self.assertEqual(node.context, context) node = generator.next() self.assertEqual(node.name, 'startnode') self.assertEqual(node.namespace, '') self.assertEqual(node.context, context) self.assertRaises(StopIteration, generator.next)
def test_postorder_multiple_namespaces(self): from context import postorder startnode = DummyTask("startnode") dep1 = DummyTask("dep1") dep1.namespaces = ["c", "d"] dep2 = DummyTask("dep2") dep2.namespaces = [""] startnode.dependencies = [dep1] dep1.dependencies = [dep2] context = DummyContext() generator = postorder(startnode, context) node = generator.next() self.assertEqual(node.name, "dep2") self.assertEqual(node.namespace, "") self.assertEqual(node.context, context) node = generator.next() self.assertEqual(node.name, "dep1") self.assertEqual(node.namespace, "c") self.assertEqual(node.context, context) node = generator.next() self.assertEqual(node.name, "dep1") self.assertEqual(node.namespace, "d") self.assertEqual(node.context, context) node = generator.next() self.assertEqual(node.name, "startnode") self.assertEqual(node.namespace, "") self.assertEqual(node.context, context) self.assertRaises(StopIteration, generator.next)
def test_unknown_child_node(self): from context import postorder startnode = DummyTask('startnode') startnode.dependencies = [object] context = DummyContext() generator = postorder(startnode, context) self.assertRaises(TypeError, list, generator)
def test_postorder_with_cycles(self): from context import postorder startnode = DummyTask('startnode') startnode.dependencies = [startnode] context = DummyContext() generator = postorder(startnode, context) nodes = list(generator) self.assertEqual(len(nodes), 1) self.assertEqual(nodes[0], startnode)
def test_postorder_all_single_namespaces(self): from context import postorder startnode = DummyTask('startnode') dep1 = DummyTask('dep1') dep2 = DummyTask('dep2') startnode.dependencies = [dep1, dep2] context = DummyContext() generator = postorder(startnode, context) nodes = list(generator) self.assertEqual(len(nodes), 3) self.assertEqual(nodes[0], dep1) self.assertEqual(nodes[1], dep2) self.assertEqual(nodes[2], startnode)