diff options
Diffstat (limited to 'newton/newton/registration/tests/test_registration.py')
-rw-r--r-- | newton/newton/registration/tests/test_registration.py | 169 |
1 files changed, 161 insertions, 8 deletions
diff --git a/newton/newton/registration/tests/test_registration.py b/newton/newton/registration/tests/test_registration.py index 78d75341..0e9be29f 100644 --- a/newton/newton/registration/tests/test_registration.py +++ b/newton/newton/registration/tests/test_registration.py @@ -14,9 +14,11 @@ import mock +from django.conf import settings from rest_framework import status from common.utils import restcall +from newton_base.openoapi.flavor import Flavors from newton_base.tests import mock_info from newton_base.tests import test_base from newton_base.util import VimDriverUtils @@ -45,6 +47,149 @@ MOCK_GET_FLAVOR_RESPONSE = { ] } +MOCK_GET_EXTRA_SPECS_RESPONSE = { + "extra_specs": { + "hw:cpu_sockets": 4, + "hw:cpu_cores": 4, + "hw:cpu_policy": "dedicated", + "hw:numa_nodes": 3, + "hw:numa_cpus.1": [0, 1], + "hw:numa_mem.1": 2, + "pci_passthrough:alias": "mycrypto-8086-0443:4", + "hw:mem_page_size": "1GB" + } +} + +MOCK_HPA_RESPONSE = """{ + "basicCapabilities": { + "info": { + "hpa-feature": "basicCapabilities", + "hpa-version": "v1", + "architecture": "generic" + }, + "hpa-attributes": { + "vcpus": { + "key": "numVirtualCpu", + "unit": null + }, + "ram": { + "key": "virtualMemSize", + "unit": "GB" + } + } + }, + "localStorage": { + "info": { + "hpa-feature": "localStorage", + "hpa-version": "v1", + "architecture": "generic" + }, + "hpa-attributes": { + "disk": { + "key": "diskSize", + "unit": "GB" + }, + "swap": { + "key": "swapMemSize", + "unit": "MB" + } + } + }, + "cpuTopology": { + "info": { + "hpa-feature": "cpuTopology", + "hpa-version": "v1", + "architecture": "generic" + }, + "hpa-attributes": { + "hw:cpu_sockets": { + "key": "numCpuSockets", + "unit": null + }, + "hw:cpu_cores": { + "key": "numCpuCores", + "unit": null + }, + "hw:cpu_threads": { + "key": "numCpuThreads", + "unit": null + } + } + }, + "cpuPinning": { + "info": { + "hpa-feature": "cpuPinning", + "hpa-version": "v1", + "architecture": "generic" + }, + "hpa-attributes": { + "hw:cpu_thread_policy": { + "key": "logicalCpuThreadPinningPolicy", + "unit": null + }, + "hw:cpu_policy": { + "key": "logicalCpuPinningPolicy", + "unit": null + } + } + }, + "numa": { + "info": { + "hpa-feature": "numa", + "hpa-version": "v1", + "architecture": "generic" + }, + "hpa-attributes": { + "hw:numa_nodes": { + "key": "numaNodes", + "unit": null + }, + "hw:numa_cpus": { + "key": "numaCpu", + "unit": null + }, + "hw:numa_mem": { + "key": "numaMem", + "unit": "GB" + } + } + }, + "hugePages": { + "info": { + "hpa-feature": "hugePages", + "hpa-version": "v1", + "architecture": "generic" + }, + "hpa-attributes": { + "hw:mem_page_size": { + "key": "memoryPageSize", + "unit": null + } + } + }, + "pciePassthrough": { + "info": { + "hpa-feature": "pciePassthrough", + "hpa-version": "v1", + "architecture": "generic" + }, + "hpa-attributes": { + "pci_count": { + "key": "pciCount", + "unit": null + }, + "pci_vendor_id": { + "key": "pciVendorId", + "unit": null + }, + "pci_device_id": { + "key": "pciDeviceId", + "unit": null + } + } + } +}""" + MOCK_GET_IMAGE_RESPONSE = { "images": [ { @@ -135,10 +280,13 @@ class TestFlavors(test_base.TestRequest): mock_response.json.return_value = return_value return mock_response + @mock.patch.object(Flavors, '_get_flavor_extra_specs') @mock.patch.object(VimDriverUtils, 'get_session') @mock.patch.object(VimDriverUtils, 'get_vim_info') def test_register_endpoint_successfully( - self, mock_get_vim_info, mock_get_session): + self, mock_get_vim_info, mock_get_session, + mock_get_extra_specs): + settings.AAI_SCHEMA_VERSION = "v13" restcall.req_to_aai = mock.Mock() restcall.req_to_aai.return_value = (0, {}, status.HTTP_200_OK) mock_get_vim_info.return_value = mock_info.MOCK_VIM_INFO @@ -157,15 +305,20 @@ class TestFlavors(test_base.TestRequest): MOCK_GET_HYPERVISOR_RESPONSE) ] }) + mock_extra_specs_response = mock.Mock(spec=test_base.MockResponse) + mock_extra_specs_response.status_code = status.HTTP_200_OK + mock_extra_specs_response.json.return_value = MOCK_GET_EXTRA_SPECS_RESPONSE + mock_get_extra_specs.return_value = mock_extra_specs_response - response = self.client.post(( - "/api/%s/v0/windriver-hudson-dc_RegionOne/" - "registry" % test_base.MULTIVIM_VERSION), - TEST_REGISTER_ENDPOINT_REQUEST, - HTTP_X_AUTH_TOKEN=mock_info.MOCK_TOKEN_ID) + with mock.patch('__builtin__.open', mock.mock_open(read_data=MOCK_HPA_RESPONSE)) as mock_file: + response = self.client.post(( + "/api/%s/v0/windriver-hudson-dc_RegionOne/" + "registry" % test_base.MULTIVIM_VERSION), + TEST_REGISTER_ENDPOINT_REQUEST, + HTTP_X_AUTH_TOKEN=mock_info.MOCK_TOKEN_ID) - self.assertEquals(status.HTTP_202_ACCEPTED, - response.status_code) + self.assertEquals(status.HTTP_202_ACCEPTED, + response.status_code) @mock.patch.object(VimDriverUtils, 'delete_vim_info') def test_unregister_endpoint_successfully( |