TestMain   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 39
Duplicated Lines 0 %

Importance

Changes 4
Bugs 0 Features 0
Metric Value
wmc 6
c 4
b 0
f 0
dl 0
loc 39
rs 10

5 Methods

Rating   Name   Duplication   Size   Complexity  
A test_check_error() 0 12 1
A test_check_result() 0 6 1
A setUp() 0 2 1
A test_remove_searching() 0 10 1
A test_create_data() 0 4 2
1
import unittest
2
import sys
3
4
if sys.version_info[0] < 3:
5
    import mock
6
else:
7
    import unittest.mock as mock
8
from obdlib.obd.protocols.base import Base
9
10
11
class TestMain(unittest.TestCase):
12
    def setUp(self):
13
        self.pm = Base()
14
15
    def test_remove_searching(self):
16
        data = self.pm.remove_searching(['SEARCHING...'])
17
        self.assertEqual(data, [])
18
19
        data = self.pm.remove_searching(['SEARCHING...', '410000000000'])
20
        self.assertEqual(data, ['410000000000'])
21
22
        # Exception - ValueError
23
        data = self.pm.remove_searching(['410C34'])
24
        self.assertEqual(data, ['410C34'])
25
26
    def test_create_data(self):
27
        with self.assertRaises(NotImplementedError) as cm:
28
            self.pm.create_data([])
29
        self.assertIsInstance(cm.exception, NotImplementedError)
30
31
    def test_check_result(self):
32
        resp = self.pm.check_result(['NODATA'])
33
        self.assertFalse(resp)
34
35
        resp = self.pm.check_result(['410C7D'])
36
        self.assertTrue(resp)
37
38
    @mock.patch('sys.stdout')
39
    def test_check_error(self, mock_out):
40
        # if hasn't error
41
        resp = self.pm.check_error(['410C7D'])
42
        self.assertTrue(resp)
43
44
        # if some error appears
45
        resp = self.pm.check_error(['7F0112'])
46
        self.assertFalse(resp)
47
48
        resp = self.pm.check_error(['7F0188'])
49
        self.assertFalse(resp)
50
51
52
suite = unittest.TestLoader().loadTestsFromTestCase(TestMain)
53
unittest.TextTestRunner(verbosity=2).run(suite)
54