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

DependenciesTest   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 23
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
dl 0
loc 23
rs 10
c 0
b 0
f 0
wmc 4

4 Methods

Rating   Name   Duplication   Size   Complexity  
A setUp() 0 4 1
A test_no_deps() 0 5 1
A test_unresolvable_deps() 0 5 1
A test_resolvable_deps() 0 4 1
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