TestKytosConfig.test_check_versions__success()   A
last analyzed

Complexity

Conditions 1

Size

Total Lines 17
Code Lines 13

Duplication

Lines 0
Ratio 0 %

Importance

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