def test_index_filter_invalid_string_values(self, filter_params, mock_vnf_list): """Test invalid string values as per ETSI NFV SOL013 5.2.2 """ query = urllib.parse.urlencode(filter_params) req = fake_request.HTTPRequest.blank('/vnfpkgm/v1/vnf_packages?' + query) mock_vnf_list.return_value = fakes.return_vnf_package_list() mock_vnf_list.return_value = fakes.return_vnf_package_list() self.assertRaises(tacker_exc.ValidationError, self.controller.index, req)
def test_index(self, path, mock_vnf_list): req = fake_request.HTTPRequest.blank(path) mock_vnf_list.return_value = fakes.return_vnf_package_list() res_dict = self.controller.index(req) expected_result = fakes.index_response(remove_attrs=[ 'softwareImages', 'checksum', 'userDefinedData']) self.assertEqual(expected_result, res_dict)
def test_index_attribute_selector_invalid_fields(self, params, mock_vnf_list): query = urllib.parse.urlencode(params) req = fake_request.HTTPRequest.blank('/vnfpkgm/v1/vnf_packages?' + query) mock_vnf_list.return_value = fakes.return_vnf_package_list() self.assertRaises(tacker_exc.ValidationError, self.controller.index, req)
def test_index_filter_invalid_operator(self, params, mock_vnf_list): """Test invalid operator in filter expression """ query = urllib.parse.urlencode(params) req = fake_request.HTTPRequest.blank('/vnfpkgm/v1/vnf_packages?' + query) mock_vnf_list.return_value = fakes.return_vnf_package_list() self.assertRaises(tacker_exc.ValidationError, self.controller.index, req)
def test_index_attribute_selector_unexpected_value(self, params, mock_vnf_list): """Test values with the parameters which doesn't need values. """ query = urllib.parse.urlencode(params) req = fake_request.HTTPRequest.blank('/vnfpkgm/v1/vnf_packages?' + query) mock_vnf_list.return_value = fakes.return_vnf_package_list() self.assertRaises(tacker_exc.ValidationError, self.controller.index, req)
def test_index_filter_invalid_value_type(self, filter_params, mock_vnf_list): """Test values which doesn't match with attribute data type """ query = urllib.parse.urlencode(filter_params) req = fake_request.HTTPRequest.blank('/vnfpkgm/v1/vnf_packages?' + query) mock_vnf_list.return_value = fakes.return_vnf_package_list() self.assertRaises(tacker_exc.ValidationError, self.controller.index, req)
def test_index_attribute_selector_all_fields(self, mock_vnf_list): params = {'all_fields': ''} query = urllib.parse.urlencode(params) req = fake_request.HTTPRequest.blank('/vnfpkgm/v1/vnf_packages?' + query) mock_vnf_list.return_value = fakes.return_vnf_package_list() res_dict = self.controller.index(req) expected_result = fakes.index_response() self.assertEqual(expected_result, res_dict)
def test_index_filter_attributes(self, filter_params, mock_vnf_list): """Test various attributes supported for filter parameter """ query = urllib.parse.urlencode(filter_params) req = fake_request.HTTPRequest.blank('/vnfpkgm/v1/vnf_packages?' + query) mock_vnf_list.return_value = fakes.return_vnf_package_list() res_dict = self.controller.index(req) expected_result = fakes.index_response(remove_attrs=[ 'softwareImages', 'checksum', 'userDefinedData']) self.assertEqual(expected_result, res_dict)
def test_index_attribute_selector_user_defined_data(self, mock_vnf_list): params = {'fields': 'userDefinedData/key1,userDefinedData/key2'} query = urllib.parse.urlencode(params) req = fake_request.HTTPRequest.blank('/vnfpkgm/v1/vnf_packages?' + query) mock_vnf_list.return_value = fakes.return_vnf_package_list() res_dict = self.controller.index(req) expected_result = fakes.index_response(remove_attrs=[ 'checksum', 'softwareImages']) self.assertEqual(expected_result, res_dict)
def test_index_attribute_selector_exclude_fields(self, params, mock_vnf_list): query = urllib.parse.urlencode(params) req = fake_request.HTTPRequest.blank('/vnfpkgm/v1/vnf_packages?' + query) mock_vnf_list.return_value = fakes.return_vnf_package_list() res_dict = self.controller.index(req) remove_attrs = [params['exclude_fields']] expected_result = fakes.index_response(remove_attrs=remove_attrs) self.assertEqual(expected_result, res_dict)
def test_index_filter_combination(self, mock_vnf_list): """Test multiple filter parameters separated by semicolon """ params = {'filter': '(eq,vnfdId,dummy_vnfd_id);(eq,id,dummy_id)'} query = urllib.parse.urlencode(params) req = fake_request.HTTPRequest.blank('/vnfpkgm/v1/vnf_packages?' + query) mock_vnf_list.return_value = fakes.return_vnf_package_list() res_dict = self.controller.index(req) expected_result = fakes.index_response(remove_attrs=[ 'softwareImages', 'checksum', 'userDefinedData']) self.assertEqual(expected_result, res_dict)
def test_index_attribute_selector_fields(self, params, mock_vnf_list): """Test valid attribute names with fields parameter We can specify complex attributes in fields. Hence the data only contains such attributes. """ complex_attrs = ['softwareImages', 'checksum', 'userDefinedData'] query = urllib.parse.urlencode(params) req = fake_request.HTTPRequest.blank('/vnfpkgm/v1/vnf_packages?' + query) mock_vnf_list.return_value = fakes.return_vnf_package_list() res_dict = self.controller.index(req) remove_attrs = [x for x in complex_attrs if x != params['fields']] expected_result = fakes.index_response(remove_attrs=remove_attrs) self.assertEqual(expected_result, res_dict)
def test_index_filter_valid_string_values(self, filter_params, mock_vnf_list): """Tests all the supported string values. For example: - values which are not enclosed in single quotes - values which are enclosed in single quotes - values having single quotes within them - values having round brackets in them """ query = urllib.parse.urlencode(filter_params) req = fake_request.HTTPRequest.blank('/vnfpkgm/v1/vnf_packages?' + query) mock_vnf_list.return_value = fakes.return_vnf_package_list() res_dict = self.controller.index(req) expected_result = fakes.index_response(remove_attrs=[ 'softwareImages', 'checksum', 'userDefinedData']) self.assertEqual(expected_result, res_dict)
def test_index_attribute_selector_nested_complex_attribute(self, mock_vnf_list): params = {'fields': 'softwareImages/checksum/algorithm,' 'softwareImages/minRam'} query = urllib.parse.urlencode(params) req = fake_request.HTTPRequest.blank('/vnfpkgm/v1/vnf_packages?' + query) mock_vnf_list.return_value = fakes.return_vnf_package_list() res_dict = self.controller.index(req) vnf_package_updates = { 'softwareImages': [{ 'minRam': 0, 'checksum': {'algorithm': 'fake-algorithm'} }] } expected_result = fakes.index_response(remove_attrs=[ 'checksum', 'userDefinedData'], vnf_package_updates=vnf_package_updates) self.assertEqual(expected_result, res_dict)
def test_index_attribute_selector_user_defined_data_combination(self, mock_vnf_list): """Query user defined data with fields parameter This test queries combination of user defined data. i.e. fields of different complex attributes. """ params = { 'fields': 'userDefinedData/key1,softwareImages/userMetadata/key3', } query = urllib.parse.urlencode(params) req = fake_request.HTTPRequest.blank('/vnfpkgm/v1/vnf_packages?' + query) mock_vnf_list.return_value = fakes.return_vnf_package_list() res_dict = self.controller.index(req) vnf_package_updates = { 'userDefinedData': {'key1': 'value1'}, 'softwareImages': [{'userMetadata': {'key3': 'value3'}}] } expected_result = fakes.index_response(remove_attrs=[ 'checksum'], vnf_package_updates=vnf_package_updates) self.assertEqual(expected_result, res_dict)
def test_index(self, mock_vnf_list): req = fake_request.HTTPRequest.blank('/vnfpkgm/v1/vnf_packages/') mock_vnf_list.return_value = fakes.return_vnf_package_list() res_dict = self.controller.index(req) expected_result = fakes.VNFPACKAGE_INDEX_RESPONSE self.assertEqual(expected_result, res_dict)