def testShortCycle(self):
     a = Action(lambda: 0, "a")
     b = Action(lambda: 0, "b")
     a.addDependency(b)
     with self.assertRaises(Exception) as cm:
         b.addDependency(a)
     self.assertEqual(cm.exception.args[0], "Dependency cycle")
Beispiel #2
0
    def testGetDependenciesAndLabelsAreNotOnlyEqualButSame(self):
        bLabel = ("b",)
        a = Action(lambda: 0, "a")
        b = Action(lambda: 0, bLabel)
        a.addDependency(b)

        otherB, = a.getDependencies()
        self.assertIs(otherB, b)
        self.assertIs(otherB.label, bLabel)
 def testLongCycle(self):
     a = Action(lambda: 0, "a")
     b = Action(lambda: 0, "b")
     c = Action(lambda: 0, "c")
     d = Action(lambda: 0, "d")
     e = Action(lambda: 0, "e")
     a.addDependency(b)
     b.addDependency(c)
     c.addDependency(d)
     d.addDependency(e)
     with self.assertRaises(Exception) as cm:
         e.addDependency(a)
     self.assertEqual(cm.exception.args[0], "Dependency cycle")
Beispiel #4
0
    def testDeepDependencyWithDuplicatedLabel(self):
        a = Action(lambda: 0, "label")
        b = Action(lambda: 0, "label")
        c = Action(lambda: 0, "label")
        d = Action(lambda: 0, "label")
        a.addDependency(b)
        b.addDependency(c)
        c.addDependency(d)

        self.assertEqual(a.getPreview(), ["label", "label", "label", "label"])
Beispiel #5
0
    def testDeepDependency(self):
        a = Action(lambda: 0, "a")
        b = Action(lambda: 0, "b")
        c = Action(lambda: 0, "c")
        d = Action(lambda: 0, "d")
        a.addDependency(b)
        b.addDependency(c)
        c.addDependency(d)

        self.assertEqual(a.getPreview(), ["d", "c", "b", "a"])
Beispiel #6
0
    def testDiamondDependency(self):
        #     a
        #    / \
        #   b   c
        #    \ /
        #     d

        a = Action(lambda: 0, "a")
        b = Action(lambda: 0, "b")
        c = Action(lambda: 0, "c")
        d = Action(lambda: 0, "d")
        a.addDependency(b)
        a.addDependency(c)
        b.addDependency(d)
        c.addDependency(d)

        self.assertIn(a.getPreview(), [["d", "c", "b", "a"], ["d", "b", "c", "a"]])
 def testSelfDependency(self):
     a = Action(lambda: 0, "a")
     with self.assertRaises(Exception) as cm:
         a.addDependency(a)
     self.assertEqual(cm.exception.args[0], "Dependency cycle")