DependencyCycleTestCase   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 28
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 6
c 0
b 0
f 0
dl 0
loc 28
rs 10

3 Methods

Rating   Name   Duplication   Size   Complexity  
A test_long_cycle() 0 13 2
A test_self_dependency() 0 5 2
A test_short_cycle() 0 7 2
1
# coding: utf8
2
3
# Copyright 2013-2018 Vincent Jacques <[email protected]>
4
5
from __future__ import division, absolute_import, print_function
6
7
import unittest
8
9
from ActionTree import *
10
11
12
class DependencyCycleTestCase(unittest.TestCase):
13
    def test_self_dependency(self):
14
        a = Action("a")
15
        with self.assertRaises(Exception) as cm:
16
            a.add_dependency(a)
17
        self.assertEqual(cm.exception.args[0], "Dependency cycle")
18
19
    def test_short_cycle(self):
20
        a = Action("a")
21
        b = Action("b")
22
        a.add_dependency(b)
23
        with self.assertRaises(Exception) as cm:
24
            b.add_dependency(a)
25
        self.assertEqual(cm.exception.args[0], "Dependency cycle")
26
27
    def test_long_cycle(self):
28
        a = Action("a")
29
        b = Action("b")
30
        c = Action("c")
31
        d = Action("d")
32
        e = Action("e")
33
        a.add_dependency(b)
34
        b.add_dependency(c)
35
        c.add_dependency(d)
36
        d.add_dependency(e)
37
        with self.assertRaises(Exception) as cm:
38
            e.add_dependency(a)
39
        self.assertEqual(cm.exception.args[0], "Dependency cycle")
40