Test Failed
Pull Request — master (#277)
by Gleyberson
02:02
created

TestNAppsClient.test_delete()   A

Complexity

Conditions 1

Size

Total Lines 10
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 7
nop 2
dl 0
loc 10
rs 10
c 0
b 0
f 0
1
"""kytos.utils.client tests."""
2
import unittest
3
from unittest.mock import MagicMock, patch
4
5
from kytos.utils.client import CommonClient, NAppsClient, UsersClient
6
from kytos.utils.config import KytosConfig
7
8
9
class TestCommonClient(unittest.TestCase):
10
    """Test the class CommonClient."""
11
12
    def setUp(self):
13
        """Execute steps before each tests."""
14
        self.common_client = CommonClient()
15
16
    @patch('requests.get')
17
    def test_make_request(self, mock_requests_get):
18
        """Test make_request method."""
19
        data = MagicMock()
20
        self.common_client.make_request('endpoint', json=data)
21
22
        mock_requests_get.assert_called_with('endpoint', json=data)
23
24
    @patch('requests.get')
25
    def test_make_request__package(self, mock_requests_get):
26
        """Test make_request method with package."""
27
        data = MagicMock()
28
        self.common_client.make_request('endpoint', package='any', json=data)
29
30
        mock_requests_get.assert_called_with('endpoint', data=data,
31
                                             files={'file': 'any'})
32
33
34
# pylint: disable=protected-access
35
class TestNAppsClient(unittest.TestCase):
36
    """Test the class NAppsClient."""
37
38
    def setUp(self):
39
        """Execute steps before each tests."""
40
        kytos_config = KytosConfig()
41
        if not (kytos_config.config.has_option('auth', 'user') and
42
                kytos_config.config.has_option('auth', 'token')):
43
            kytos_config.save_token('user', 'token')
44
45
        self.napps_client = NAppsClient()
46
        self.napps_client._config.set('kytos', 'api', 'endpoint')
47
        self.napps_client._config.set('napps', 'api', 'endpoint')
48
49
    @staticmethod
50
    def _expected_response(status_code):
51
        """Expected response mock."""
52
        response = MagicMock()
53
        response.content = '{"napps": []}'.encode()
54
        response.status_code = status_code
55
        return response
56
57
    @patch('requests.get')
58
    def test_get_napps(self, mock_request):
59
        """Test get_napps method."""
60
        mock_request.return_value = self._expected_response(200)
61
62
        self.napps_client.get_napps()
63
64
        mock_request.assert_called_with('endpoint/napps/', json=[])
65
66
    @patch('requests.get')
67
    def test_get_napp(self, mock_request):
68
        """Test get_napp method."""
69
        mock_request.return_value = self._expected_response(200)
70
71
        self.napps_client.get_napp('username', 'name')
72
73
        endpoint = 'endpoint/napps/username/name/'
74
        mock_request.assert_called_with(endpoint, json=[])
75
76
    @patch('requests.get')
77
    def test_reload_napps__all(self, mock_request):
78
        """Test reload_napps method to all napps."""
79
        mock_request.return_value = self._expected_response(200)
80
81
        self.napps_client.reload_napps()
82
83
        endpoint = 'endpoint/api/kytos/core/reload/all'
84
        mock_request.assert_called_with(endpoint, json=[])
85
86
    @patch('requests.get')
87
    def test_reload_napps__any(self, mock_request):
88
        """Test reload_napps method to any napp."""
89
        mock_request.return_value = self._expected_response(200)
90
91
        napps = [('user', 'napp', 'version')]
92
        self.napps_client.reload_napps(napps)
93
94
        endpoint = 'endpoint/api/kytos/core/reload/user/napp'
95
        mock_request.assert_called_with(endpoint, json=[])
96
97
    @patch('requests.post')
98
    def test_upload_napp(self, mock_request):
99
        """Test upload_napp method."""
100
        mock_request.return_value = self._expected_response(201)
101
102
        metadata = MagicMock()
103
        self.napps_client.upload_napp(metadata, 'package')
104
105
        mock_request.assert_called_with('endpoint/napps/', data=metadata,
106
                                        files={'file': 'package'})
107
108
    @patch('requests.delete')
109
    def test_delete(self, mock_request):
110
        """Test delete method."""
111
        mock_request.return_value = self._expected_response(201)
112
113
        self.napps_client.delete('user', 'napp')
114
115
        endpoint = 'endpoint/napps/user/napp/'
116
        token = self.napps_client._config.get('auth', 'token')
117
        mock_request.assert_called_with(endpoint, json={'token': token})
118
119
120
class TestUsersClient(unittest.TestCase):
121
    """Test the class UsersClient."""
122
123
    def setUp(self):
124
        """Execute steps before each tests."""
125
        self.users_client = UsersClient()
126
        self.users_client._config.set('napps', 'api', 'endpoint')
127
128
    @patch('requests.post')
129
    def test_register(self, mock_request):
130
        """Test register method."""
131
        user_dict = MagicMock()
132
        self.users_client.register(user_dict)
133
134
        mock_request.assert_called_with('endpoint/users/', json=user_dict)
135