Completed
Push — master ( 669a7b...91f4e1 )
by Vincent
01:13
created

TimingTestCase.test_cancelation_with_keep_going()   A

Complexity

Conditions 1

Size

Total Lines 11

Duplication

Lines 0
Ratio 0 %

Importance

Changes 3
Bugs 0 Features 0
Metric Value
c 3
b 0
f 0
dl 0
loc 11
rs 9.4285
cc 1
1
# coding: utf8
2
3
# Copyright 2013-2017 Vincent Jacques <[email protected]>
4
5
from __future__ import division, absolute_import, print_function
6
7
import unittest
8
9
from ActionTree import *
10
from . import *
11
12
13
class TimingTestCase(ActionTreeTestCase):
14 View Code Duplication
    def test_success(self):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
15
        a = self._action("a")
16
17
        report = execute(a)
18
19
        self.assertIsInstance(report.get_action_status(a).pending_time, datetime.datetime)
20
        self.assertEqual(report.get_action_status(a).ready_time, report.get_action_status(a).pending_time)
21
        self.assertIsNone(report.get_action_status(a).cancel_time)
22
        self.assertEqual(report.get_action_status(a).start_time, report.get_action_status(a).ready_time)
23
        self.assertGreater(report.get_action_status(a).success_time, report.get_action_status(a).start_time)
24
        self.assertIsNone(report.get_action_status(a).failure_time)
25
26 View Code Duplication
    def test_failure(self):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
27
        a = self._action("a", exception=Exception())
28
29
        report = execute(a, do_raise=False)
30
31
        self.assertIsInstance(report.get_action_status(a).pending_time, datetime.datetime)
32
        self.assertEqual(report.get_action_status(a).ready_time, report.get_action_status(a).pending_time)
33
        self.assertIsNone(report.get_action_status(a).cancel_time)
34
        self.assertEqual(report.get_action_status(a).start_time, report.get_action_status(a).ready_time)
35
        self.assertIsNone(report.get_action_status(a).success_time)
36
        self.assertGreater(report.get_action_status(a).failure_time, report.get_action_status(a).start_time)
37
38
    def test_cancelation_before_ready(self):
39
        a = self._action("a")
40
        b = self._action("b", exception=Exception())
41
        a.add_dependency(b)
42
43
        report = execute(a, do_raise=False)
44
45
        self.assertIsInstance(report.get_action_status(b).pending_time, datetime.datetime)
46
        self.assertEqual(report.get_action_status(b).ready_time, report.get_action_status(b).pending_time)
47
        self.assertIsNone(report.get_action_status(b).cancel_time)
48
        self.assertEqual(report.get_action_status(b).start_time, report.get_action_status(b).ready_time)
49
        self.assertIsNone(report.get_action_status(b).success_time)
50
        self.assertGreater(report.get_action_status(b).failure_time, report.get_action_status(b).start_time)
51
52
        self.assertIsInstance(report.get_action_status(a).pending_time, datetime.datetime)
53
        self.assertIsNone(report.get_action_status(a).ready_time)
54
        self.assertEqual(report.get_action_status(a).cancel_time, report.get_action_status(b).failure_time)
55
        self.assertIsNone(report.get_action_status(a).start_time)
56
        self.assertIsNone(report.get_action_status(a).success_time)
57
        self.assertIsNone(report.get_action_status(a).failure_time)
58
59
    def test_cancelation_with_keep_going(self):
60
        a = self._action("a")
61
        b = self._action("b")
62
        a.add_dependency(b)
63
        c = self._action("c", exception=Exception())
64
        b.add_dependency(c)
65
66
        report = execute(a, keep_going=True, do_raise=False)
67
68
        self.assertEqual(report.get_action_status(b).cancel_time, report.get_action_status(c).failure_time)
69
        self.assertEqual(report.get_action_status(a).cancel_time, report.get_action_status(b).cancel_time)
70
71
    def test_leaves_have_same_ready_time(self):
72
        a = self._action("a")
73
        b = self._action("b")
74
        c = self._action("c")
75
        d = self._action("d")
76
        a.add_dependency(b)
77
        a.add_dependency(c)
78
        a.add_dependency(d)
79
80
        report = execute(a)
81
82
        self.assertEqual(report.get_action_status(c).ready_time, report.get_action_status(b).ready_time)
83
        self.assertEqual(report.get_action_status(d).ready_time, report.get_action_status(b).ready_time)
84