def test_extract_path_parameters(self): #case 1: parameter is a path variable element_value_mock = mock.Mock() element_value_mock.string_value = 'mock' element_map_mock = mock.Mock() element_map_mock.elements = {'value': element_value_mock} field_info_mock = mock.Mock() field_info_mock.name = 'mock_name' field_info_mock.metadata = {'PathVariable' : element_map_mock} url = '/package/mock-1/{mock}' params = [field_info_mock] '''' params = [FieldInfo(name = 'mock_name', metadata = { 'PathVariable' : ElementMap(elements = { 'value' : ElementValue(string_value = 'mock') }) })] ''' path_params_expected = [field_info_mock] other_params_expected = [] new_url_expected = '/package/mock-1/{mock_name}' path_params_actual, other_params_actual, new_url_actual = utils.extract_path_parameters(params, url) self.assertEqual(path_params_expected, path_params_actual) self.assertEqual(other_params_expected, other_params_actual) self.assertEqual(new_url_expected, new_url_actual) #case 2: parameter is not a path variable field_info_mock.metadata = {'metadata_key' : element_map_mock} path_params_expected = [] other_params_expected = [field_info_mock] new_url_expected = '/package/mock-1/{mock}' path_params_actual, other_params_actual, new_url_actual = utils.extract_path_parameters(params, url) self.assertEqual(path_params_expected, path_params_actual) self.assertEqual(other_params_expected, other_params_actual) self.assertEqual(new_url_expected, new_url_actual)
def process_get_request(self, url, params, type_dict, structure_svc, enum_svc, enable_filtering, spec): param_array = [] path_param_list, other_params_list, new_url = utils.extract_path_parameters( params, url) for field_info in path_param_list: parameter_obj = spec.convert_field_info_to_swagger_parameter( 'path', field_info, type_dict, structure_svc, enum_svc, enable_filtering) param_array.append(parameter_obj) query_param_list, other_params_list = utils.extract_query_parameters( other_params_list) # Query for query_param in query_param_list: parameter_obj = spec.convert_field_info_to_swagger_parameter( 'query', query_param, type_dict, structure_svc, enum_svc, enable_filtering) param_array.append(parameter_obj) # process query parameters for field_info in other_params_list: # See documentation of method flatten_query_param_spec to understand # handling of all the query parameters; filter as well as non # filter flattened_params = spec.flatten_query_param_spec( field_info, type_dict, structure_svc, enum_svc, enable_filtering) if flattened_params is not None: param_array = param_array + flattened_params return param_array, new_url
def process_put_post_patch_request(self, url, service_name, operation_name, params, type_dict, structure_svc, enum_svc, show_unreleased_apis, spec): """ Handles http post/put/patch request. todo: handle query, formData and header parameters """ # Path path_param_list, other_param_list, new_url = utils.extract_path_parameters( params, url) par_array = [] for field_info in path_param_list: parx = spec.convert_field_info_to_swagger_parameter( 'path', field_info, type_dict, structure_svc, enum_svc, show_unreleased_apis) par_array.append(parx) # Body body_param_list = other_param_list if body_param_list: parx = spec.wrap_body_params(service_name, operation_name, body_param_list, type_dict, structure_svc, enum_svc, show_unreleased_apis) if parx is not None: par_array.append(parx) return par_array, new_url
def process_put_post_patch_request( self, url, service_name, operation_name, params, type_dict, structure_svc, enum_svc, show_unreleased_apis, spec): """ Handles http post/put/patch request. todo: handle query, formData and header parameters """ # Path path_param_list, other_param_list, new_url = utils.extract_path_parameters( params, url) par_array = [] for field_info in path_param_list: parx = spec.convert_field_info_to_swagger_parameter( 'path', field_info, type_dict, structure_svc, enum_svc, show_unreleased_apis) par_array.append(parx) # Body body_param_list, other_param_list = utils.extract_body_parameters( other_param_list) if body_param_list: parx = spec.wrap_body_params( service_name, operation_name, body_param_list, type_dict, structure_svc, enum_svc, show_unreleased_apis) if parx is not None: par_array.append(parx) # Query query_param_list, other_param_list = utils.extract_query_parameters( other_param_list) for query_param in query_param_list: parx = spec.convert_field_info_to_swagger_parameter( 'query', query_param, type_dict, structure_svc, enum_svc, show_unreleased_apis) par_array.append(parx) # process query parameters for field_info in other_param_list: # See documentation of method flatten_query_param_spec to understand # handling of all the query parameters; filter as well as non # filter flattened_params = spec.flatten_query_param_spec( field_info, type_dict, structure_svc, enum_svc, show_unreleased_apis) if flattened_params is not None: par_array = par_array + flattened_params return par_array, new_url
def process_delete_request(self, url, params, type_dict, structure_svc, enum_svc, enable_filtering, spec): path_param_list, other_params, new_url = utils.extract_path_parameters( params, url) param_array = [] for field_info in path_param_list: parx = spec.convert_field_info_to_swagger_parameter( 'path', field_info, type_dict, structure_svc, enum_svc, enable_filtering) param_array.append(parx) for field_info in other_params: parx = spec.convert_field_info_to_swagger_parameter( 'query', field_info, type_dict, structure_svc, enum_svc, enable_filtering) param_array.append(parx) return param_array, new_url