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

ResolvableBear1.get_dependencies()   A

Complexity

Conditions 1

Size

Total Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
c 1
b 0
f 0
dl 0
loc 3
rs 10
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
        # We can set this attribute properly only after UnresolvableBear3 is
36
        # declared.
37
        setattr(UnresolvableBear1, 'BEAR_DEPS', {ResolvableBear1,
38
                                                 Bear,
39
                                                 UnresolvableBear3})
40
41
    def test_no_deps(self):
42
        self.assertEqual(
43
            len(Dependencies.resolve([Bear,
44
                                      Bear])),
45
            1)
46
47
    def test_resolvable_deps(self):
48
        self.assertEqual(Dependencies.resolve([ResolvableBear1,
49
                                               ResolvableBear2]),
50
                         [Bear, ResolvableBear1, ResolvableBear2])
51
52
    def test_unresolvable_deps(self):
53
        self.assertRaises(
54
            Dependencies.CircularDependencyError,
55
            Dependencies.resolve,
56
            [UnresolvableBear1])
57