tests.unit.test_config   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 69
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
eloc 46
dl 0
loc 69
ccs 45
cts 45
cp 1
rs 10
c 0
b 0
f 0
wmc 6

5 Methods

Rating   Name   Duplication   Size   Complexity  
A TestKytosConfig.test_save_token() 0 7 1
A TestKytosConfig.test_check_versions__error() 0 17 1
A TestKytosConfig.test_check_versions__success() 0 17 1
A TestKytosConfig.test_clear_token() 0 7 1
A TestKytosConfig.setUp() 0 5 2
1
"""kytos.utils.config tests."""
2 1
import tempfile
3 1
import unittest
4 1
from unittest.mock import MagicMock, patch
5
6 1
from kytos.utils.config import KytosConfig
7
8
9 1
class TestKytosConfig(unittest.TestCase):
10
    """Test the class KytosConfig."""
11
12 1
    def setUp(self):
13
        """Execute steps before each tests."""
14 1
        with tempfile.TemporaryDirectory() as tmp_dir:
15 1
            self.config_file = '{}.kytosrc'.format(tmp_dir)
16 1
        self.kytos_config = KytosConfig(self.config_file)
17
18 1
    def test_clear_token(self):
19
        """Test clear_token method."""
20 1
        self.kytos_config.clear_token()
21
22 1
        config = KytosConfig(self.config_file).config
23 1
        has_token = config.has_option('auth', 'token')
24 1
        self.assertFalse(has_token)
25
26 1
    def test_save_token(self):
27
        """Test save_token method."""
28 1
        self.kytos_config.save_token('user', 'token')
29
30 1
        config = KytosConfig(self.config_file).config
31 1
        has_token = config.has_option('auth', 'token')
32 1
        self.assertTrue(has_token)
33
34 1
    @patch('builtins.open')
35 1
    @patch('kytos.utils.config.urlopen')
36 1
    @patch('kytos.utils.config.logging.RootLogger.warning')
37 1
    def test_check_versions__success(self, *args):
38
        """Test check_versions method to success case."""
39 1
        (mock_warning, mock_urlopen, mock_open) = args
40 1
        urlopen = MagicMock()
41 1
        urlopen.read.return_value = '{"__version__": "123"}'
42 1
        mock_urlopen.return_value = urlopen
43
44 1
        read_file = MagicMock()
45 1
        read_file.read.return_value = "__version__ = '123'"
46 1
        mock_open.return_value = read_file
47
48 1
        self.kytos_config.check_versions()
49
50 1
        mock_warning.assert_not_called()
51
52 1
    @patch('builtins.open')
53 1
    @patch('kytos.utils.config.urlopen')
54 1
    @patch('kytos.utils.config.logging.RootLogger.warning')
55 1
    def test_check_versions__error(self, *args):
56
        """Test check_versions method to error case."""
57 1
        (mock_warning, mock_urlopen, mock_open) = args
58 1
        urlopen = MagicMock()
59 1
        urlopen.read.return_value = '{"__version__": "123"}'
60 1
        mock_urlopen.return_value = urlopen
61
62 1
        read_file = MagicMock()
63 1
        read_file.read.return_value = "__version__ = '456'"
64 1
        mock_open.return_value = read_file
65
66 1
        self.kytos_config.check_versions()
67
68
        mock_warning.assert_called_once()
69