def test_create_already_exists(mock_category, mock_send, mock_exists): """Do nothing if already created in SDC.""" pnf = Pnf() vsp = Vsp() vsp._identifier = "1232" pnf.vsp = vsp mock_exists.return_value = True pnf.create() mock_send.assert_not_called()
def test_create_already_exists(mock_category, mock_send, mock_exists): """Do nothing if already created in SDC.""" vf = Vf(vendor=MagicMock()) vsp = Vsp() vsp._identifier = "1232" vf.vsp = vsp mock_exists.return_value = True vf.create() mock_send.assert_not_called()
def test_exists_versions(mock_vsp_created, mock_get_all): mock_vsp_created.return_value = True sdc_el1 = Vsp(name="test1") sdc_el1._version = "1.0" sdc_el1._identifier = "123" sdc_el2 = Vsp(name="test2") sdc_el2._version = "2.0" sdc_el2._identifier = "123" mock_get_all.return_value = [sdc_el1, sdc_el2] assert sdc_el1.exists() sdc_el1 = Vsp(name="test1") sdc_el1._version = "anything" sdc_el1._identifier = "123" sdc_el2 = Vsp(name="test2") sdc_el2._version = "what_is_not_a_float" sdc_el2._identifier = "123" mock_get_all.return_value = [sdc_el1, sdc_el2] assert sdc_el1.exists()
def test_create_new_version(mock_load, mock_send): vsp = Vsp(vendor=mock.MagicMock()) vsp._identifier = "1232" vsp._version = "4321" vsp.create_new_version() mock_load.assert_called_once() mock_send.assert_called_once_with( "POST", "Create new VSP version", "https://sdc.api.fe.simpledemo.onap.org:30207/sdc1/feProxy/onboarding-api/v1.0/items/1232/versions/4321", data='{"creationMethod": "major", "description": "New VSP version"}')
def test_validate_OK(mock_send, mock_status): """Don't update status if submission NOK.""" vsp = Vsp() vsp._status = const.UPLOADED mock_send.return_value = {'status': 'Success'} vsp._version = "1234" vsp._identifier = "12345" vsp.validate() mock_send.assert_called_once_with( 'PUT', 'Validate artifacts for Vsp', 'https://sdc.api.fe.simpledemo.onap.org:30207/sdc1/feProxy/onboarding-api/v1.0/vendor-software-products/12345/versions/1234/orchestration-template-candidate/process' )
def test_commit_OK(mock_send, mock_status): """Don't update status if submission NOK.""" vsp = Vsp() vsp._status = const.VALIDATED expected_data = '{\n\n "commitRequest":{"message":"ok"},\n\n "action": "Commit"\n}' vsp._version = "1234" vsp._identifier = "12345" vsp.commit() mock_send.assert_called_once_with( "PUT", "Commit Vsp", 'https://sdc.api.fe.simpledemo.onap.org:30207/sdc1/feProxy/onboarding-api/v1.0/items/12345/versions/1234/actions', data=expected_data)
def test_submit_OK(mock_send, mock_status): """Don't update status if submission NOK.""" vsp = Vsp() vsp._status = const.COMMITED expected_data = '{\n\n "action": "Submit"\n}' vsp._version = "1234" vsp._identifier = "12345" vsp.submit() mock_send.assert_called_once_with( "PUT", "Submit Vsp", 'https://sdc.api.fe.simpledemo.onap.org:30207/sdc1/feProxy/onboarding-api/v1.0/vendor-software-products/12345/versions/1234/actions', data=expected_data)
def test_create_OK(mock_category, mock_send, mock_exists): """Create and update object.""" vf = Vf() vsp = Vsp() vendor = Vendor() vsp._identifier = "1232" vf.vsp = vsp vsp.vendor = vendor vsp._csar_uuid = "1234" expected_data = '{\n "artifacts": {},\n "attributes": [],\n "capabilities": {},\n "categories": [\n {\n "normalizedName": "generic",\n "name": "Generic",\n "uniqueId": "resourceNewCategory.generic",\n "subcategories": [{"empty": false, "groupings": null, "icons": ["objectStorage", "compute"], "name": "Abstract", "normalizedName": "abstract", "ownerId": null, "type": null, "uniqueId": "resourceNewCategory.generic.abstract", "version": null}],\n "version": null,\n "ownerId": null,\n "empty": false,\n "type": null,\n "icons": null\n }\n ],\n "componentInstances": [],\n "componentInstancesAttributes": {},\n "componentInstancesProperties": {},\n "componentType": "RESOURCE",\n "contactId": "cs0008",\n \n "csarUUID": "1234",\n "csarVersion": "1.0",\n \n "deploymentArtifacts": {},\n "description": "VF",\n "icon": "defaulticon",\n "name": "ONAP-test-VF",\n "properties": [],\n "groups": [],\n "requirements": {},\n "resourceType": "VF",\n "tags": ["ONAP-test-VF"],\n "toscaArtifacts": {},\n "vendorName": "Generic-Vendor",\n "vendorRelease": "1.0"\n}' mock_exists.return_value = False mock_send.return_value = { 'resourceType': 'VF', 'name': 'one', 'uuid': '1234', 'invariantUUID': '5678', 'version': '1.0', 'uniqueId': '91011', 'lifecycleState': 'NOT_CERTIFIED_CHECKOUT' } rc = ResourceCategory(name="Generic") rc.normalized_name = "generic" rc.unique_id = "resourceNewCategory.generic" rc.subcategories = [{ "empty": False, "groupings": None, "icons": ["objectStorage", "compute"], "name": "Abstract", "normalizedName": "abstract", "ownerId": None, "type": None, "uniqueId": "resourceNewCategory.generic.abstract", "version": None }] rc.version = None rc.owner_id = None rc.empty = False rc.type = None rc.icons = None mock_category.return_value = rc vf.create() mock_send.assert_called_once_with( "POST", "create Vf", 'https://sdc.api.fe.simpledemo.onap.org:30207/sdc1/feProxy/rest/v1/catalog/resources', data=expected_data) assert vf.created() assert vf._status == const.DRAFT assert vf.identifier == "1234" assert vf.unique_uuid == "5678" assert vf.version == "1.0"
def test_create_csar_not_OK(mock_send, mock_status): """Don't update status if submission NOK.""" vsp = Vsp() vsp._status = const.CERTIFIED mock_send.return_value = {} expected_data = '{\n\n "action": "Create_Package"\n}' vsp._version = "1234" vsp._identifier = "12345" vsp.create_csar() mock_send.assert_called_once_with( "PUT", "Create_Package Vsp", 'https://sdc.api.fe.simpledemo.onap.org:30207/sdc1/feProxy/onboarding-api/v1.0/vendor-software-products/12345/versions/1234/actions', data=expected_data) assert vsp.csar_uuid == None
def test_create_csar_OK(mock_send, mock_status): """Don't update status if submission NOK.""" vsp = Vsp() vsp._status = const.CERTIFIED result = requests.Response() result.status_code = 201 result._content = json.dumps({'packageId': "64"}).encode('UTF-8') mock_send.return_value = result expected_data = '{\n\n "action": "Create_Package"\n}' vsp._version = "1234" vsp._identifier = "12345" vsp.create_csar() mock_send.assert_called_once_with( "PUT", "Create_Package Vsp", 'https://sdc.api.fe.simpledemo.onap.org:30207/sdc1/feProxy/onboarding-api/v1.0/vendor-software-products/12345/versions/1234/actions', data=expected_data) assert vsp.csar_uuid == "64"
def test_create_issue_in_creation(mock_category, mock_send, mock_exists): # def test_create_issue_in_creation(mock_send, mock_exists): """Do nothing if not created but issue during creation.""" pnf = Pnf() vsp = Vsp() vendor = Vendor() vsp._identifier = "1232" vsp.create_csar = MagicMock(return_value=True) vsp.vendor = vendor pnf.vsp = vsp expected_data = '{\n "artifacts": {},\n "attributes": [],\n "capabilities": {},\n "categories": [\n {\n "normalizedName": "generic",\n "name": "Generic",\n "uniqueId": "resourceNewCategory.generic",\n "subcategories": [{"empty": false, "groupings": null, "icons": ["objectStorage", "compute"], "name": "Abstract", "normalizedName": "abstract", "ownerId": null, "type": null, "uniqueId": "resourceNewCategory.generic.abstract", "version": null}],\n "version": null,\n "ownerId": null,\n "empty": false,\n "type": null,\n "icons": null\n }\n ],\n "componentInstances": [],\n "componentInstancesAttributes": {},\n "componentInstancesProperties": {},\n "componentType": "RESOURCE",\n "contactId": "cs0008",\n \n "csarUUID": "None",\n "csarVersion": "1.0",\n "vendorName": "Generic-Vendor",\n \n "deploymentArtifacts": {},\n "description": "PNF",\n "icon": "defaulticon",\n "name": "ONAP-test-PNF",\n "properties": [],\n "groups": [],\n "requirements": {},\n "resourceType": "PNF",\n "tags": ["ONAP-test-PNF"],\n "toscaArtifacts": {},\n "vendorRelease": "1.0"\n}' mock_exists.return_value = False mock_send.side_effect = RequestError rc = ResourceCategory(name="Generic") rc.normalized_name = "generic" rc.unique_id = "resourceNewCategory.generic" rc.subcategories = [{ "empty": False, "groupings": None, "icons": ["objectStorage", "compute"], "name": "Abstract", "normalizedName": "abstract", "ownerId": None, "type": None, "uniqueId": "resourceNewCategory.generic.abstract", "version": None }] rc.version = None rc.owner_id = None rc.empty = False rc.type = None rc.icons = None mock_category.return_value = rc with pytest.raises(RequestError) as exc: pnf.create() mock_send.assert_called_once_with( "POST", "create Pnf", 'https://sdc.api.fe.simpledemo.onap.org:30207/sdc1/feProxy/rest/v1/catalog/resources', data=expected_data) assert not pnf.created()
def test_upload_OK(mock_send, mock_status): """Don't update status if submission NOK.""" vsp = Vsp() vsp._status = const.DRAFT mock_send.return_value = mock.MagicMock(text='{"status": "Success"}') vsp._version = "1234" vsp._identifier = "12345" vsp.upload_package('data') mock_send.assert_called_once_with( 'POST', 'upload ZIP for Vsp', "https://sdc.api.fe.simpledemo.onap.org:30207/sdc1/feProxy/onboarding-api/v1.0/vendor-software-products/12345/versions/1234/orchestration-template-candidate", files={'upload': 'data'}, headers={ 'Accept': 'application/json', 'USER_ID': 'cs0008', 'Authorization': 'Basic YWFpOktwOGJKNFNYc3pNMFdYbGhhazNlSGxjc2UyZ0F3ODR2YW9HR21KdlV5MlU=', 'X-ECOMP-InstanceID': 'onapsdk', 'Accept-Encoding': 'gzip, deflate' })