diff --git a/.testr.conf b/.testr.conf index 5b3840b..7ad5757 100644 --- a/.testr.conf +++ b/.testr.conf @@ -2,6 +2,6 @@ test_command=OS_STDOUT_CAPTURE=${OS_STDOUT_CAPTURE:-1} \ OS_STDERR_CAPTURE=${OS_STDERR_CAPTURE:-1} \ OS_TEST_TIMEOUT=${OS_TEST_TIMEOUT:-60} \ - ${PYTHON:-python} -m subunit.run discover -t ./ ${TESTS_DIR:-./oneview_client/tests/unit} $LISTOPT $IDOPTION + ${PYTHON:-python} -m subunit.run discover -t ./ ${TESTS_DIR:-./oneview_client/tests} $LISTOPT $IDOPTION test_id_option=--load-list $IDFILE test_list_option=--list diff --git a/oneview_client/client.py b/oneview_client/client.py index 589a064..f326457 100644 --- a/oneview_client/client.py +++ b/oneview_client/client.py @@ -348,7 +348,7 @@ class Client(BaseClient): def get_server_profile_template(self, node_info): uuid = node_info['server_profile_template_uri'].split("/")[-1] - return self._server_profile.get(uuid) + return self._server_profile_template.get(uuid) def get_server_profile_template_by_uuid(self, uuid): return self._server_profile_template.get(uuid) diff --git a/oneview_client/tests/functional/test_oneview_client.py b/oneview_client/tests/functional/test_oneview_client.py index 6fa09c4..3229551 100644 --- a/oneview_client/tests/functional/test_oneview_client.py +++ b/oneview_client/tests/functional/test_oneview_client.py @@ -47,28 +47,7 @@ class OneViewClientTestCase(unittest.TestCase): self.password = 'password' @mock.patch.object(requests, 'get', autospec=True) - def test_server_hardware_list(self, mock_get, mock__authenticate): - oneview_client = client.Client(self.manager_url, - self.username, - self.password) - response = mock_get.return_value - response.status_code = http_client.OK - response.json = mock.MagicMock( - return_value=fixtures.SERVER_HARDWARE_LIST_JSON - ) - mock_get.return_value = response - - server_hardware_list = oneview_client._server_hardware.list() - mock_get.assert_called_once_with( - url='https://1.2.3.4/rest/server-hardware/', - headers=mock.ANY, - verify=True - ) - for sh in server_hardware_list: - self.assertIsInstance(sh, models.ServerHardware) - - @mock.patch.object(requests, 'get', autospec=True) - def test_server_hardware_get(self, mock_get, mock__authenticate): + def test_get_server_hardware(self, mock_get, mock__authenticate): oneview_client = client.Client(self.manager_url, self.username, self.password) @@ -79,7 +58,12 @@ class OneViewClientTestCase(unittest.TestCase): ) mock_get.return_value = response - sh = oneview_client._server_hardware.get('aaaa-bbbb-cccc') + node_info = { + 'server_hardware_uri': '/rest/server-hardware/aaaa-bbbb-cccc' + } + + sh = oneview_client.get_server_hardware(node_info) + mock_get.assert_called_once_with( url='https://1.2.3.4/rest/server-hardware/aaaa-bbbb-cccc', headers=mock.ANY, @@ -88,7 +72,7 @@ class OneViewClientTestCase(unittest.TestCase): self.assertIsInstance(sh, models.ServerHardware) @mock.patch.object(requests, 'get', autospec=True) - def test_server_hardware_get_not_found(self, mock_get, mock__authenticate): + def test_get_server_hardware_not_found(self, mock_get, mock__authenticate): oneview_client = client.Client(self.manager_url, self.username, self.password) @@ -96,59 +80,18 @@ class OneViewClientTestCase(unittest.TestCase): response.status_code = http_client.NOT_FOUND mock_get.return_value = response + node_info = { + 'server_hardware_uri': '/rest/server-hardware/aaaa-bbbb-cccc' + } + self.assertRaises( exceptions.OneViewResourceNotFoundError, - oneview_client._server_hardware.get, - 'aaaa-bbbb-cccc' - ) - - def test_server_hardware_create(self, mock__authenticate): - oneview_client = client.Client(self.manager_url, - self.username, - self.password) - self.assertRaises( - NotImplementedError, - oneview_client._server_hardware.create, - name='something', - description='somethingelse', - something=0 - ) - - def test_server_hardware_delete(self, mock__authenticate): - oneview_client = client.Client(self.manager_url, - self.username, - self.password) - self.assertRaises( - NotImplementedError, - oneview_client._server_hardware.delete, - 'aaaa-bbbb-cccc' + oneview_client.get_server_hardware, + node_info ) @mock.patch.object(requests, 'get', autospec=True) - def test_server_profile_template_list(self, mock_get, mock__authenticate): - oneview_client = client.Client(self.manager_url, - self.username, - self.password) - response = mock_get.return_value - response.status_code = http_client.OK - response.json = mock.MagicMock( - return_value=fixtures.SERVER_PROFILE_TEMPLATE_LIST_JSON - ) - mock_get.return_value = response - - server_profile_template_list = ( - oneview_client._server_profile_template.list() - ) - mock_get.assert_called_once_with( - url='https://1.2.3.4/rest/server-profile-templates/', - headers=mock.ANY, - verify=True - ) - for spt in server_profile_template_list: - self.assertIsInstance(spt, models.ServerProfileTemplate) - - @mock.patch.object(requests, 'get', autospec=True) - def test_server_profile_template_get(self, mock_get, mock__authenticate): + def test_get_server_profile_template(self, mock_get, mock__authenticate): oneview_client = client.Client(self.manager_url, self.username, self.password) @@ -159,7 +102,12 @@ class OneViewClientTestCase(unittest.TestCase): ) mock_get.return_value = response - spt = oneview_client._server_profile_template.get('aaaa-bbbb-cccc') + node_info = { + 'server_profile_template_uri': + '/rest/server-profile-templates/aaaa-bbbb-cccc' + } + + spt = oneview_client.get_server_profile_template(node_info) mock_get.assert_called_once_with( url='https://1.2.3.4/rest/server-profile-templates/aaaa-bbbb-cccc', headers=mock.ANY, @@ -177,75 +125,85 @@ class OneViewClientTestCase(unittest.TestCase): response.status_code = http_client.NOT_FOUND mock_get.return_value = response + node_info = { + 'server_profile_template_uri': + '/rest/server-profile-templates/aaaa-bbbb-cccc' + } + self.assertRaises( exceptions.OneViewResourceNotFoundError, - oneview_client._server_profile_template.get, - 'aaaa-bbbb-cccc' - ) - - def test_server_profile_template_create(self, mock__authenticate): - oneview_client = client.Client(self.manager_url, - self.username, - self.password) - self.assertRaises( - NotImplementedError, - oneview_client._server_profile_template.create, - name='something', - description='somethingelse', - something=0 - ) - - def test_server_profile_template_delete(self, mock__authenticate): - oneview_client = client.Client(self.manager_url, - self.username, - self.password) - self.assertRaises( - NotImplementedError, - oneview_client._server_profile_template.delete, - 'aaaa-bbbb-cccc' + oneview_client.get_server_profile_template, + node_info ) @mock.patch.object(requests, 'get', autospec=True) - def test_server_profile_list(self, mock_get, mock__authenticate): + def test_get_server_profile_from_hardware(self, mock_get, + mock__authenticate): oneview_client = client.Client(self.manager_url, self.username, self.password) - response = mock_get.return_value - response.status_code = http_client.OK - response.json = mock.MagicMock( - return_value=fixtures.SERVER_PROFILE_LIST_JSON + hardware = mock.MagicMock() + hardware.status_code = http_client.OK + hardware.json = mock.MagicMock( + return_value=fixtures.SERVER_HARDWARE_LIST_JSON['members'][0] ) - mock_get.return_value = response - - server_profile_list = oneview_client._server_profile.list() - mock_get.assert_called_once_with( - url='https://1.2.3.4/rest/server-profiles/', - headers=mock.ANY, - verify=True - ) - for sp in server_profile_list: - self.assertIsInstance(sp, models.ServerProfile) - - @mock.patch.object(requests, 'get', autospec=True) - def test_server_profile_get(self, mock_get, mock__authenticate): - oneview_client = client.Client(self.manager_url, - self.username, - self.password) - response = mock_get.return_value - response.status_code = http_client.OK - response.json = mock.MagicMock( + profile = mock.MagicMock() + profile.status_code = http_client.OK + profile.json = mock.MagicMock( return_value=fixtures.SERVER_PROFILE_JSON ) - mock_get.return_value = response + mock_get.side_effect = [hardware, profile] - sp = oneview_client._server_profile.get('aaaa-bbbb-cccc') - mock_get.assert_called_once_with( - url='https://1.2.3.4/rest/server-profiles/aaaa-bbbb-cccc', - headers=mock.ANY, - verify=True + node_info = { + 'server_hardware_uri': + '/rest/server-hardware/30303437-3933-4753-4831-31315835524E' + } + + sp = oneview_client.get_server_profile_from_hardware(node_info) + mock_get.assert_has_calls( + [mock.call( + url='https://1.2.3.4/rest/server-hardware/30303437-3933-4753-4' + '831-31315835524E', + headers=mock.ANY, + verify=True, + ), mock.call( + url='https://1.2.3.4/rest/server-profiles/f2160e28-8107-45f9-b' + '4b2-3119a622a3a1', + headers=mock.ANY, + verify=True, + )] ) self.assertIsInstance(sp, models.ServerProfile) + @mock.patch.object(requests, 'get', autospec=True) + def test_get_server_profile_from_hardware_no_profile(self, mock_get, + mock__authenticate): + oneview_client = client.Client(self.manager_url, + self.username, + self.password) + hardware = mock.MagicMock() + hardware.status_code = http_client.OK + hardware.json = mock.MagicMock( + return_value=fixtures.SERVER_HARDWARE_JSON + ) + profile = mock.MagicMock() + profile.status_code = http_client.OK + profile.json = mock.MagicMock( + return_value=fixtures.SERVER_PROFILE_JSON + ) + mock_get.side_effect = [hardware, profile] + + node_info = { + 'server_hardware_uri': + '/rest/server-hardware/30303437-3933-4753-4831-31315835524E' + } + + self.assertRaises( + exceptions.OneViewServerProfileAssociatedError, + oneview_client.get_server_profile_from_hardware, + node_info + ) + @mock.patch.object(requests, 'get', autospec=True) def test_server_profile_get_not_found(self, mock_get, mock__authenticate): oneview_client = client.Client(self.manager_url, @@ -261,28 +219,6 @@ class OneViewClientTestCase(unittest.TestCase): 'aaaa-bbbb-cccc' ) - def test_server_profile_create(self, mock__authenticate): - oneview_client = client.Client(self.manager_url, - self.username, - self.password) - self.assertRaises( - NotImplementedError, - oneview_client._server_profile.create, - name='something', - description='somethingelse', - something=0 - ) - - def test_server_profile_delete(self, mock__authenticate): - oneview_client = client.Client(self.manager_url, - self.username, - self.password) - self.assertRaises( - NotImplementedError, - oneview_client._server_profile.delete, - 'aaaa-bbbb-cccc' - ) - @mock.patch.object(client.ClientV2, '_authenticate', autospec=True) class OneViewClientV2TestCase(unittest.TestCase): diff --git a/tox.ini b/tox.ini index 817b98b..dd28d14 100644 --- a/tox.ini +++ b/tox.ini @@ -28,12 +28,6 @@ commands = oslo_debug_helper {posargs} [flake8] exclude = .venv,.git,.tox,dist,doc,*openstack/common*,*lib/python*,*egg,build,tools - -[testenv:functional] -setenv = TESTS_DIR=./oneview_client/tests/functional - LANGUAGE=en_US - show-source = True ignore = E123,E125 builtins = _ -exclude=.venv,.git,.tox,dist,doc,*openstack/common*,*lib/python*,*egg,build