Completed
Push — master ( 2ae69e...39840a )
by Vincent
01:14
created

test_diamond_dependencies()   A

Complexity

Conditions 1

Size

Total Lines 19

Duplication

Lines 19
Ratio 100 %

Importance

Changes 3
Bugs 0 Features 0
Metric Value
c 3
b 0
f 0
dl 19
loc 19
rs 9.4285
cc 1
1
# coding: utf8
2
3
# Copyright 2013-2015 Vincent Jacques <[email protected]>
4
5
from __future__ import division, absolute_import, print_function
6
7
from ActionTree import *
8
from . import *
9
10
11
class MultiThreadedExecutionTestCase(ActionTreeTestCase):
12 View Code Duplication
    def test_many_dependencies(self):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
13
        #     a
14
        #    /|\
15
        #   / | \
16
        #  b  c  d
17
18
        a = self._action("a")
19
        b = self._action("b", delay=0.1, end_event=True)
20
        c = self._action("c", delay=0.1, end_event=True)
21
        d = self._action("d", delay=0.1, end_event=True)
22
        a.add_dependency(b)
23
        a.add_dependency(c)
24
        a.add_dependency(d)
25
26
        execute(a, jobs=3)
27
28
        self.assertEventsEqual("bcd BCD a")
29
30 View Code Duplication
    def test_many_dependencies_with_default_jobs(self):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
31
        #     a
32
        #    /|\
33
        #   / | \
34
        #  b  c  d
35
36
        a = self._action("a")
37
        b = self._action("b", delay=0.1, end_event=True)
38
        c = self._action("c", delay=0.1, end_event=True)
39
        d = self._action("d", delay=0.1, end_event=True)
40
        a.add_dependency(b)
41
        a.add_dependency(c)
42
        a.add_dependency(d)
43
44
        execute(a, jobs=None)
45
46
        self.assertEventsEqual("bcd BCD a")
47
48
    def test_deep_dependencies(self):
49
        #  a
50
        #  |
51
        #  b
52
        #  |
53
        #  c
54
        #  |
55
        #  d
56
        #  |
57
        #  e
58
        #  |
59
        #  f
60
61
        a = self._action("a")
62
        b = self._action("b", end_event=True)
63
        c = self._action("c", end_event=True)
64
        d = self._action("d", end_event=True)
65
        e = self._action("e", end_event=True)
66
        f = self._action("f", end_event=True)
67
        a.add_dependency(b)
68
        b.add_dependency(c)
69
        c.add_dependency(d)
70
        d.add_dependency(e)
71
        e.add_dependency(f)
72
73
        execute(a, jobs=3)
74
75
        self.assertEventsEqual("f F e E d D c C b B a")
76
77 View Code Duplication
    def test_diamond_dependencies(self):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
78
        #     a
79
        #    / \
80
        #   b   c
81
        #    \ /
82
        #     d
83
84
        a = self._action("a")
85
        b = self._action("b", delay=0.1, end_event=True)
86
        c = self._action("c", delay=0.1, end_event=True)
87
        d = self._action("d", end_event=True)
88
        a.add_dependency(b)
89
        a.add_dependency(c)
90
        b.add_dependency(d)
91
        c.add_dependency(d)
92
93
        execute(a, jobs=3)
94
95
        self.assertEventsEqual("d D bc BC a")
96
97
    def test_half_diamond_dependency(self):
98
        #     a
99
        #    /|
100
        #   b |
101
        #    \|
102
        #     d
103
104
        a = self._action("a")
105
        b = self._action("b", end_event=True)
106
        d = self._action("d", end_event=True)
107
        a.add_dependency(b)
108
        a.add_dependency(d)
109
        b.add_dependency(d)
110
111
        execute(a, jobs=3)
112
113
        self.assertEventsEqual("d D b B a")
114
115 View Code Duplication
    def test_two_deep_branches(self):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
116
        #     a
117
        #    / \
118
        #   b   c
119
        #   |   |
120
        #   d   e
121
122
        a = self._action("a")
123
        b = self._action("b", delay=0.1, end_event=True)
124
        c = self._action("c", delay=0.1, end_event=True)
125
        d = self._action("d", delay=0.1, end_event=True)
126
        e = self._action("e", delay=0.1, end_event=True)
127
        a.add_dependency(b)
128
        a.add_dependency(c)
129
        b.add_dependency(d)
130
        c.add_dependency(e)
131
132
        execute(a, jobs=3)
133
134
        self.assertEventsEqual("de DEbc BC a")
135