Completed
Pull Request — master (#2592)
by Udayan
02:00
created

DependenciesTest.setUp()   A

Complexity

Conditions 1

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
dl 0
loc 4
rs 10
c 0
b 0
f 0
1
import unittest
2
3
from coalib.bears.Bear import Bear
4
from coalib.collecting import Dependencies
5
6
7
class ResolvableBear1(Bear):
8
9
    BEAR_DEPS = {Bear}
10
11
12
class ResolvableBear2(Bear):
13
14
    BEAR_DEPS = {ResolvableBear1, Bear}
15
16
17
class UnresolvableBear1(Bear):
18
19
    BEAR_DEPS = {ResolvableBear1, Bear}
20
21
22
class UnresolvableBear2(Bear):
23
24
    BEAR_DEPS = {ResolvableBear1, Bear, UnresolvableBear1}
25
26
27
class UnresolvableBear3(Bear):
28
29
    BEAR_DEPS = {ResolvableBear1, Bear, UnresolvableBear2}
30
31
32
class DependenciesTest(unittest.TestCase):
33
34
    def setUp(self):
35
        setattr(UnresolvableBear1, 'BEAR_DEPS', {ResolvableBear1,
36
                                                 Bear,
37
                                                 UnresolvableBear3})
38
39
    def test_no_deps(self):
40
        self.assertEqual(
41
            len(Dependencies.resolve([Bear,
42
                                      Bear])),
43
            1)
44
45
    def test_resolvable_deps(self):
46
        self.assertEqual(Dependencies.resolve([ResolvableBear1,
47
                                               ResolvableBear2]),
48
                         [Bear, ResolvableBear1, ResolvableBear2])
49
50
    def test_unresolvable_deps(self):
51
        self.assertRaises(
52
            Dependencies.CircularDependencyError,
53
            Dependencies.resolve,
54
            [UnresolvableBear1])
55