def test_upload_vnf_package_from_uri(self, mock_vnf_pack_save, mock_vnf_by_id, mock_upload_vnf_package_from_uri, mock_url_open): body = {"addressInformation": "http://test_data.zip"} mock_vnf_by_id.return_value = fakes.return_vnfpkg_obj() mock_vnf_pack_save.return_value = fakes.return_vnfpkg_obj() req = fake_request.HTTPRequest.blank( '/vnf_packages/%s/package_content/upload_from_uri' % constants.UUID) req.headers['Content-Type'] = 'application/json' req.method = 'POST' req.body = jsonutils.dump_as_bytes(body) resp = req.get_response(self.app) self.assertEqual(http_client.ACCEPTED, resp.status_code)
def test_delete_with_204_status(self, mock_delete_rpc, mock_vnf_by_id): mock_vnf_by_id.return_value = fakes.return_vnfpkg_obj() req = fake_request.HTTPRequest.blank('/vnf_packages/%s' % constants.UUID) req.headers['Content-Type'] = 'application/json' req.method = 'DELETE' resp = req.get_response(self.app) self.assertEqual(http_client.NO_CONTENT, resp.status_code)
def test_show(self, mock_vnf_by_id, mock_sw_image_by_id): req = fake_request.HTTPRequest.blank( '/vnfpkgm/v1/vnf_packages/%s' % constants.UUID) mock_vnf_by_id.return_value = fakes.return_vnfpkg_obj() mock_sw_image_by_id.return_value = fakes.return_software_image() expected_result = fakes.VNFPACKAGE_RESPONSE res_dict = self.controller.show(req, constants.UUID) self.assertEqual(expected_result, res_dict)
def test_upload_vnf_package_content(self, mock_vnf_pack_save, mock_vnf_by_id, mock_upload_vnf_package_content, mock_glance_store): file_path = "tacker/tests/etc/samples/test_data.zip" file_obj = open(file_path, "rb") mock_vnf_by_id.return_value = fakes.return_vnfpkg_obj() mock_vnf_pack_save.return_value = fakes.return_vnfpkg_obj() mock_glance_store.return_value = 'location', 'size', 'checksum',\ 'multihash', 'loc_meta' req = fake_request.HTTPRequest.blank( '/vnf_packages/%s/package_content' % constants.UUID) req.headers['Content-Type'] = 'application/zip' req.method = 'PUT' req.body = jsonutils.dump_as_bytes(file_obj) resp = req.get_response(self.app) mock_glance_store.assert_called() self.assertEqual(http_client.ACCEPTED, resp.status_code)
def test_upload_vnf_package_content_with_invalid_status(self, mock_vnf_by_id): vnf_obj = fakes.return_vnfpkg_obj() vnf_obj.__setattr__('onboarding_state', 'ONBOARDED') mock_vnf_by_id.return_value = vnf_obj req = fake_request.HTTPRequest.blank( '/vnf_packages/%s/package_content' % constants.UUID) self.assertRaises(exc.HTTPConflict, self.controller.upload_vnf_package_content, req, constants.UUID, body=mock.mock_open())
def test_get_vnf_package_vnfd_with_invalid_accept_header( self, mock_vnf_by_id): mock_vnf_by_id.return_value = fakes.return_vnfpkg_obj() req = fake_request.HTTPRequest.blank( '/vnf_packages/%s/vnfd' % constants.UUID) req.headers['Accept'] = 'test-invalid-header' req.method = 'GET' self.assertRaises(exc.HTTPNotAcceptable, self.controller.get_vnf_package_vnfd, req, constants.UUID)
def test_get_vnf_package_vnfd_with_valid_accept_headers( self, accept_headers, mock_vnf_by_id, mock_get_vnf_package_vnfd): mock_vnf_by_id.return_value = fakes.return_vnfpkg_obj() mock_get_vnf_package_vnfd.return_value = fakes.return_vnfd_data() req = fake_request.HTTPRequest.blank( '/vnf_packages/%s/vnfd' % constants.UUID) req.headers['Accept'] = accept_headers req.method = 'GET' resp = req.get_response(self.app) self.assertEqual(http_client.OK, resp.status_code)
def test_patch_not_in_onboarded_state(self, mock_vnf_by_id): vnf_package_updates = {'onboarding_state': 'CREATED', 'operational_state': 'DISABLED'} mock_vnf_by_id.return_value = fakes.return_vnfpkg_obj( vnf_package_updates=vnf_package_updates) body = {"operationalState": "DISABLED"} req = fake_request.HTTPRequest.blank('/vnf_packages/%s' % constants.UUID) self.assertRaises(exc.HTTPBadRequest, self.controller.patch, req, constants.UUID, body=body)
def test_get_vnf_package_vnfd_failed_with_bad_request( self, mock_vnf_by_id, mock_get_vnf_package_vnfd): mock_vnf_by_id.return_value = fakes.return_vnfpkg_obj() mock_get_vnf_package_vnfd.return_value = fakes.return_vnfd_data() req = fake_request.HTTPRequest.blank( '/vnf_packages/%s/vnfd' % constants.UUID) req.headers['Accept'] = 'text/plain' req.method = 'GET' self.assertRaises(exc.HTTPBadRequest, self.controller.get_vnf_package_vnfd, req, constants.UUID)
def test_patch_failed_with_same_operational_state(self, mock_vnf_by_id): vnf_package_updates = {'operational_state': 'DISABLED'} mock_vnf_by_id.return_value = \ fakes.return_vnfpkg_obj(vnf_package_updates=vnf_package_updates) body = {"operationalState": "DISABLED", "userDefinedData": {"testKey1": "val01", "testKey2": "val02", "testkey3": "val03"}} req = fake_request.HTTPRequest.blank('/vnf_packages/%s' % constants.UUID) self.assertRaises(exc.HTTPConflict, self.controller.patch, req, constants.UUID, body=body)
def test_upload_vnf_package_content_with_invalid_status(self, mock_vnf_by_id): file_path = "tacker/tests/etc/samples/test_data.zip" file_obj = open(file_path, "rb") vnf_obj = fakes.return_vnfpkg_obj() vnf_obj.__setattr__('onboarding_state', 'ONBOARDED') mock_vnf_by_id.return_value = vnf_obj req = fake_request.HTTPRequest.blank( '/vnf_packages/%s/package_content' % constants.UUID) self.assertRaises(exc.HTTPConflict, self.controller.upload_vnf_package_content, req, constants.UUID, body=file_obj)
def test_upload_vnf_package_from_uri_with_invalid_status(self, mock_vnf_by_id, mock_url_open): body = {"addressInformation": "http://localhost/test_data.zip"} vnf_obj = fakes.return_vnfpkg_obj() vnf_obj.__setattr__('onboarding_state', 'ONBOARDED') mock_vnf_by_id.return_value = vnf_obj req = fake_request.HTTPRequest.blank( '/vnf_packages/%s/package_content/upload_from_uri' % constants.UUID) self.assertRaises(exc.HTTPConflict, self.controller.upload_vnf_package_from_uri, req, constants.UUID, body=body)
def test_get_vnf_package_vnfd_failed_with_internal_server_error( self, mock_vnf_by_id, mock_get_vnf_package_vnfd): mock_vnf_by_id.return_value = fakes.return_vnfpkg_obj() mock_get_vnf_package_vnfd.side_effect = tacker_exc.FailedToGetVnfdData req = fake_request.HTTPRequest.blank( '/vnf_packages/%s/vnfd' % constants.UUID) req.headers['Accept'] = 'application/zip' req.method = 'GET' resp = req.get_response(self.app) self.assertRaises(exc.HTTPInternalServerError, self.controller.get_vnf_package_vnfd, req, constants.UUID) self.assertEqual(http_client.INTERNAL_SERVER_ERROR, resp.status_code)
def test_get_vnf_package_vnfd_failed_with_invalid_status( self, mock_vnf_by_id): vnf_package_updates = { 'onboarding_state': 'CREATED', 'operational_state': 'DISABLED' } mock_vnf_by_id.return_value = fakes.return_vnfpkg_obj( vnf_package_updates=vnf_package_updates) req = fake_request.HTTPRequest.blank( '/vnf_packages/%s/vnfd' % constants.UUID) req.headers['Accept'] = 'application/zip' req.method = 'GET' resp = req.get_response(self.app) self.assertEqual(http_client.CONFLICT, resp.status_code)
def test_get_vnf_package_vnfd_for_content_type_text_plain(self, mock_vnf_by_id, mock_get_vnf_package_vnfd): mock_vnf_by_id.return_value = fakes.return_vnfpkg_obj() fake_vnfd_data = fakes.return_vnfd_data(multiple_yaml_files=False) mock_get_vnf_package_vnfd.return_value = fake_vnfd_data req = fake_request.HTTPRequest.blank( '/vnf_packages/%s/vnfd' % constants.UUID) req.headers['Accept'] = 'text/plain' req.method = 'GET' resp = req.get_response(self.app) self.assertEqual(http_client.OK, resp.status_code) self.assertEqual('text/plain', resp.content_type) self.assertEqual(fake_vnfd_data[list(fake_vnfd_data.keys())[0]], resp.text)
def test_patch_update_existing_user_data(self, mock_save, mock_vnf_by_id): fake_obj = fakes.return_vnfpkg_obj(vnf_package_updates={ "operational_state": "DISABLED", "onboarding_state": "CREATED", "user_data": {"testKey1": "val01", "testKey2": "val02", "testKey3": "val03"}}) mock_vnf_by_id.return_value = fake_obj req_body = {"userDefinedData": {"testKey1": "changed_val01", "testKey2": "changed_val02", "testKey3": "changed_val03"}} req = fake_request.HTTPRequest.blank( '/vnf_packages/%s' % constants.UUID) req.headers['Content-Type'] = 'application/json' req.method = 'PATCH' req.body = jsonutils.dump_as_bytes(req_body) resp = req.get_response(self.app) self.assertEqual(http_client.OK, resp.status_code) self.assertEqual(req_body, jsonutils.loads(resp.body))