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)
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 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)
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"])
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"])
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"])
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"])
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"]])
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 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")
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)
def test_typed_label(self): a = Action(None, ("a", "curious", "label", 42)) self.assertEqual(a.get_preview(), [("a", "curious", "label", 42)])
def test_none_label(self): a = Action(None, None) self.assertEqual(a.get_preview(), [])
def testNoneLabel(self): a = Action(lambda: 0, None) self.assertEqual(a.getPreview(), [None])
def testTypedLabel(self): a = Action(lambda: 0, ("a", "curious", "label", 42)) self.assertEqual(a.getPreview(), [("a", "curious", "label", 42)])
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")
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_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")