Beispiel #1
0
class TimingTestCase(TestCaseWithMocks):
    def setUp(self):
        super(TimingTestCase, self).setUp()
        self.m = self.mocks.create("m")
        self.time = self.mocks.replace("Action._time")
        self.a = Action(self.m.object, "timed")

    def test_before_execution(self):
        self.assertIsNone(self.a.begin_time)
        self.assertIsNone(self.a.end_time)

    def test_success(self):
        self.time.expect().andReturn(1352032735.2)
        self.m.expect()
        self.time.expect().andReturn(1352032737.1)

        self.a.execute()
        self.assertEqual(self.a.begin_time, 1352032735.2)
        self.assertEqual(self.a.end_time, 1352032737.1)

    def test_failure(self):
        e = Exception()

        self.time.expect().andReturn(1352032735.2)
        self.m.expect().andRaise(e)
        self.time.expect().andReturn(1352032737.1)

        self.assertRaises(CompoundException, self.a.execute)

        self.assertEqual(self.a.begin_time, 1352032735.2)
        self.assertEqual(self.a.end_time, 1352032737.1)
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)
Beispiel #3
0
    def test_dependencies_and_labels_are_not_only_equal_but_same(self):
        bLabel = ("b",)
        a = Action(None, "a")
        b = Action(None, bLabel)
        a.add_dependency(b)

        otherB, = a.dependencies
        self.assertIs(otherB, b)
        self.assertIs(otherB.label, bLabel)
Beispiel #4
0
    def test_deep_dependency_with_duplicated_label(self):
        a = Action(None, "label")
        b = Action(None, "label")
        c = Action(None, "label")
        d = Action(None, "label")
        a.add_dependency(b)
        b.add_dependency(c)
        c.add_dependency(d)

        self.assertEqual(a.get_preview(), ["label", "label", "label", "label"])
Beispiel #5
0
    def test_deep_dependency(self):
        a = Action(None, "a")
        b = Action(None, "b")
        c = Action(None, "c")
        d = Action(None, "d")
        a.add_dependency(b)
        b.add_dependency(c)
        c.add_dependency(d)

        self.assertEqual(a.get_preview(), ["d", "c", "b", "a"])
Beispiel #6
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 #7
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 #8
0
    def test_diamond_dependency(self):
        #     a
        #    / \
        #   b   c
        #    \ /
        #     d

        a = Action(None, "a")
        b = Action(None, "b")
        c = Action(None, "c")
        d = Action(None, "d")
        a.add_dependency(b)
        a.add_dependency(c)
        b.add_dependency(d)
        c.add_dependency(d)

        self.assertIn(a.get_preview(), [["d", "c", "b", "a"], ["d", "b", "c", "a"]])
Beispiel #9
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"]])
Beispiel #10
0
    def setUp(self):
        unittest.TestCase.setUp(self)

        self.mocks = MockMockMock.Engine()
        self.m = self.mocks.create("m")
        self.time = self.mocks.create("time")

        self.a = Action(self.m.object, "timed")
        self.oldTime = Action._time
        Action._time = self.time.object
 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 #12
0
class Timing(unittest.TestCase):
    def setUp(self):
        unittest.TestCase.setUp(self)

        self.mocks = MockMockMock.Engine()
        self.m = self.mocks.create("m")
        self.time = self.mocks.create("time")

        self.a = Action(self.m.object, "timed")
        self.oldTime = Action._time
        Action._time = self.time.object

    def tearDown(self):
        unittest.TestCase.tearDown(self)
        Action._time = self.oldTime

    def testExecution(self):
        self.time.expect().andReturn(1352032735.2)
        self.m.expect()
        self.time.expect().andReturn(1352032737.1)

        self.a.execute()
        self.assertEqual(self.a.beginTime, 1352032735.2)
        self.assertEqual(self.a.endTime, 1352032737.1)

    def testFailure(self):
        e = Exception()

        self.time.expect().andReturn(1352032735.2)
        self.m.expect().andRaise(e)
        self.time.expect().andReturn(1352032737.1)

        self.assertRaises(CompoundException, self.a.execute)

        self.assertEqual(self.a.beginTime, 1352032735.2)
        self.assertEqual(self.a.endTime, 1352032737.1)
Beispiel #13
0
 def test_typed_label(self):
     a = Action(None, ("a", "curious", "label", 42))
     self.assertEqual(a.get_preview(), [("a", "curious", "label", 42)])
Beispiel #14
0
 def test_none_label(self):
     a = Action(None, None)
     self.assertEqual(a.get_preview(), [])
Beispiel #15
0
 def testNoneLabel(self):
     a = Action(lambda: 0, None)
     self.assertEqual(a.getPreview(), [None])
Beispiel #16
0
 def testTypedLabel(self):
     a = Action(lambda: 0, ("a", "curious", "label", 42))
     self.assertEqual(a.getPreview(), [("a", "curious", "label", 42)])
Beispiel #17
0
 def testSimplePreview(self):
     a = Action(lambda: 0, "a")
     self.assertEqual(a.getPreview(), ["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")
Beispiel #19
0
 def setUp(self):
     super(TimingTestCase, self).setUp()
     self.m = self.mocks.create("m")
     self.time = self.mocks.replace("Action._time")
     self.a = Action(self.m.object, "timed")
Beispiel #20
0
 def test_simple_preview(self):
     a = Action(None, "a")
     self.assertEqual(a.get_preview(), ["a"])
 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")