Failed Conditions
Pull Request — master (#1990)
by Mischa
01:34
created

ResolvableBear1   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 5
Duplicated Lines 0 %
Metric Value
dl 0
loc 5
rs 10
wmc 1

1 Method

Rating   Name   Duplication   Size   Complexity  
A get_dependencies() 0 3 1
1
import unittest
2
3
from coalib.bears.Bear import Bear
4
from coalib.collecting import Dependencies
5
6
7
class BearWithoutDeps(Bear):
8
9
    @staticmethod
10
    def get_dependencies():
11
        return []
12
13
14
class ResolvableBear1(Bear):
15
16
    @staticmethod
17
    def get_dependencies():
18
        return [BearWithoutDeps]
19
20
21
class ResolvableBear2(Bear):
22
23
    @staticmethod
24
    def get_dependencies():
25
        return [ResolvableBear1, BearWithoutDeps]
26
27
28
class UnresolvableBear1(Bear):
29
30
    @staticmethod
31
    def get_dependencies():
32
        return [ResolvableBear1, BearWithoutDeps, UnresolvableBear3]
33
34
35
class UnresolvableBear2(Bear):
36
37
    @staticmethod
38
    def get_dependencies():
39
        return [ResolvableBear1, BearWithoutDeps, UnresolvableBear1]
40
41
42
class UnresolvableBear3(Bear):
43
44
    @staticmethod
45
    def get_dependencies():
46
        return [ResolvableBear1, BearWithoutDeps, UnresolvableBear2]
47
48
49
class DependenciesTest(unittest.TestCase):
50
51
    def test_no_deps(self):
52
        self.assertEqual(
53
            len(Dependencies.resolve([BearWithoutDeps,
54
                                      BearWithoutDeps])),
55
            1)
56
57
    def test_resolvable_deps(self):
58
        self.assertEqual(Dependencies.resolve([ResolvableBear1,
59
                                               ResolvableBear2]),
60
                         [BearWithoutDeps, ResolvableBear1, ResolvableBear2])
61
62
    def test_unresolvable_deps(self):
63
        self.assertRaises(
64
            Dependencies.CircularDependencyError,
65
            Dependencies.resolve,
66
            [UnresolvableBear1])
67