Completed
Pull Request — master (#2555)
by Udayan
01:45
created

BearWithoutDeps.get_dependencies()   A

Complexity

Conditions 1

Size

Total Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
dl 0
loc 3
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
    @staticmethod
10
    def get_dependencies():
11
        return [Bear]
12
13
14
class ResolvableBear2(Bear):
15
16
    @staticmethod
17
    def get_dependencies():
18
        return [ResolvableBear1, Bear]
19
20
21
class UnresolvableBear1(Bear):
22
23
    @staticmethod
24
    def get_dependencies():
25
        return [ResolvableBear1, Bear, UnresolvableBear3]
26
27
28
class UnresolvableBear2(Bear):
29
30
    @staticmethod
31
    def get_dependencies():
32
        return [ResolvableBear1, Bear, UnresolvableBear1]
33
34
35
class UnresolvableBear3(Bear):
36
37
    @staticmethod
38
    def get_dependencies():
39
        return [ResolvableBear1, Bear, UnresolvableBear2]
40
41
42
class DependenciesTest(unittest.TestCase):
43
44
    def test_no_deps(self):
45
        self.assertEqual(
46
            len(Dependencies.resolve([Bear,
47
                                      Bear])),
48
            1)
49
50
    def test_resolvable_deps(self):
51
        self.assertEqual(Dependencies.resolve([ResolvableBear1,
52
                                               ResolvableBear2]),
53
                         [Bear, ResolvableBear1, ResolvableBear2])
54
55
    def test_unresolvable_deps(self):
56
        self.assertRaises(
57
            Dependencies.CircularDependencyError,
58
            Dependencies.resolve,
59
            [UnresolvableBear1])
60