DbusDocumentTest   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 75
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
dl 0
loc 75
rs 10
c 0
b 0
f 0
wmc 4

4 Methods

Rating   Name   Duplication   Size   Complexity  
A test_path() 0 7 1
A test_config() 0 11 1
A setUp() 0 9 1
B test_analyze() 0 43 1
1
import os
2
import unittest
3
from unittest.case import SkipTest
4
5
from coalib.misc import Constants
6
7
try:
8
    from coalib.output.dbus.DbusDocument import DbusDocument
9
except ImportError as err:
10
    raise SkipTest('python-dbus is not installed')
11
12
13
class DbusDocumentTest(unittest.TestCase):
14
15
    def setUp(self):
16
        self.config_path = os.path.abspath(
17
            os.path.join(os.path.dirname(__file__),
18
                         "dbus_test_files",
19
                         ".coafile"))
20
        self.testcode_c_path = os.path.abspath(
21
            os.path.join(os.path.dirname(__file__),
22
                         "dbus_test_files",
23
                         "testcode.c"))
24
25
    def test_path(self):
26
        test_file = "a"
27
        uut = DbusDocument(doc_id=1)
28
        self.assertEqual(uut.path, "")
29
30
        uut = DbusDocument(doc_id=1, path=test_file)
31
        self.assertEqual(uut.path, os.path.abspath(test_file))
32
33
    def test_config(self):
34
        uut = DbusDocument(doc_id=1)
35
        self.assertEqual(uut.FindConfigFile(), "")
36
37
        uut.path = self.testcode_c_path
38
        self.assertEqual(uut.FindConfigFile(), self.config_path)
39
40
        uut.SetConfigFile("config_file")
41
        self.assertEqual(uut.config_file, "config_file")
42
43
        self.assertEqual(uut.GetConfigFile(), "config_file")
44
45
    def test_analyze(self):
46
        uut = DbusDocument(doc_id=1)
47
        self.assertEqual(uut.Analyze(), [])
48
49
        uut.path = self.testcode_c_path
50
        self.assertEqual(uut.Analyze(), [])
51
52
        self.maxDiff = None
53
        uut.SetConfigFile(self.config_path)
54
        output = uut.Analyze()
55
        self.assertEqual(output,
56
                         (1,
57
                          [],
58
                          [['default',
59
                            True,
60
                            [{'debug_msg': '',
61
                              'additional_info': '',
62
                              'file': '',
63
                              'id': output[2][0][2][0]['id'],
64
                              'line_nr': '',
65
                              'message': 'test msg',
66
                              'origin': 'LocalTestBear',
67
                              'severity': 'NORMAL',
68
                              'confidence': '100'},
69
                             {'debug_msg': '',
70
                              'additional_info': '',
71
                              'file': self.testcode_c_path,
72
                              'id': output[2][0][2][1]['id'],
73
                              'line_nr': '',
74
                              'message': 'test msg',
75
                              'origin': 'GlobalTestBear',
76
                              'severity': 'NORMAL',
77
                              'confidence': '100'}]]]))
78
79
        uut.path = "test.unknown_extension"
80
        output = uut.Analyze()
81
        self.assertEqual(output, (0, [], []))
82
83
        uut.SetConfigFile(self.config_path + "2")
84
        output = uut.Analyze()
85
        self.assertEqual(output[0], 255)
86
        self.assertEqual(output[1][1]["log_level"], "ERROR")
87
        self.assertEqual(output[1][1]["message"], Constants.CRASH_MESSAGE)
88