SourcePositionTest   A
last analyzed

Complexity

Total Complexity 8

Size/Duplication

Total Lines 44
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
dl 0
loc 44
rs 10
c 0
b 0
f 0
wmc 8

5 Methods

Rating   Name   Duplication   Size   Complexity  
A test_string_conversion() 0 11 1
A assert_equal() 0 4 1
A assert_ordering() 0 6 1
A test_initialization() 0 11 3
A test_json() 0 5 2
1
import unittest
2
from os.path import relpath
3
4
from coalib.results.SourcePosition import SourcePosition
5
from coalib.misc.ContextManagers import prepare_file
6
7
8
class SourcePositionTest(unittest.TestCase):
9
10
    def test_initialization(self):
11
        with self.assertRaises(TypeError):
12
            SourcePosition(None, 0)
13
14
        with self.assertRaises(ValueError):
15
            SourcePosition("file", None, 1)
16
17
        # However these should work:
18
        SourcePosition("file", None, None)
19
        SourcePosition("file", 4, None)
20
        SourcePosition("file", 4, 5)
21
22
    def test_string_conversion(self):
23
        uut = SourcePosition("filename", 1)
24
        self.assertRegex(
25
            repr(uut),
26
            "<SourcePosition object\\(file='.*filename', line=1, "
27
                "column=None\\) at 0x[0-9a-fA-F]+>")
28
29
        uut = SourcePosition("None", None)
30
        self.assertRegex(
31
            repr(uut),
32
            "<SourcePosition object\\(file='.*None', line=None, column=None\\) "
33
                "at 0x[0-9a-fA-F]+>")
34
35
    def test_json(self):
36
        with prepare_file([""], None) as (_, filename):
37
            uut = SourcePosition(filename, 1)
38
            self.assertEqual(uut.__json__(use_relpath=True)
39
                             ['file'], relpath(filename))
40
41
    def assert_equal(self, first, second):
42
        self.assertGreaterEqual(first, second)
43
        self.assertEqual(first, second)
44
        self.assertLessEqual(first, second)
45
46
    def assert_ordering(self, greater, lesser):
47
        self.assertGreater(greater, lesser)
48
        self.assertGreaterEqual(greater, lesser)
49
        self.assertNotEqual(greater, lesser)
50
        self.assertLessEqual(lesser, greater)
51
        self.assertLess(lesser, greater)
52