Completed
Pull Request — master (#277)
by Gleyberson
01:36
created

tests.unit.test_config   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 67
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 44
dl 0
loc 67
rs 10
c 0
b 0
f 0
wmc 5

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