def test_create_request_with_right_context_params(self, parent_breadcrumbs_from, api_breadcrumb_filters, settings): http_request = MagicMock() mock_api = MagicMock() mock_api.name = 'api_name' mock_api.version = '1.0.0.1' http_request.user.is_anonymous.return_value = False request_body = MagicMock() settings.TIME_ZONE = expected_timezone = MagicMock() request = api_request_builder.build_request(http_request=http_request, url='candidates', api=mock_api, request_data={}, request_body=request_body) assert_that(request.context_params, has_entry('protocol', 'http')) assert_that(request.context_params, has_entry('url', 'candidates')) assert_that(request.context_params, has_entry('timezone', expected_timezone)) assert_that(request.context_params, has_entry('api_version', mock_api.version)) assert_that(request.context_params, has_entry('api_name', mock_api.name))
def handle_api_call(http_request, url, api): if not action_resolver.is_valid_resource(url, api): return HttpResponseNotFound() action = action_resolver.resolve_action(http_request, url, api) if action is None: # we could not resolve what action to call for this http request. # return method not allowed response return HttpResponseNotAllowed("%s:%s" % (url, http_request.method)) request_body = http_request.read() request_data = api_request_builder.build_request_data( request_body, http_request.META) if request_data.get('error_message'): return HttpResponseBadRequest(json.dumps(request_data), content_type='application/json') request = api_request_builder.build_request(http_request=http_request, url=url, api=api, request_data=request_data, request_body=request_body) response = action(request) http_response = django_response_builder.build_http_response( http_request, response) return http_response
def handle_api_call(http_request, url, api): if not action_resolver.is_valid_resource(url, api): return HttpResponseNotFound() action = action_resolver.resolve_action(http_request, url, api) if action is None: # we could not resolve what action to call for this http request. # return method not allowed response return HttpResponseNotAllowed("%s:%s" % (url, http_request.method)) request_body = http_request.read() request_data = api_request_builder.build_request_data(request_body, http_request.META) if request_data.get('error_message'): return HttpResponseBadRequest( json.dumps(request_data), content_type='application/json') request = api_request_builder.build_request(http_request=http_request, url=url, api=api, request_data=request_data, request_body=request_body) response = action(request) http_response = django_response_builder.build_http_response( http_request, response) return http_response
def test_create_request_with_request_body(self): http_request = MagicMock() mock_api = MagicMock() request_body = 'abcd' request = api_request_builder.build_request(http_request=http_request, url='candidates', api=mock_api, request_data={}, request_body=request_body) assert_that(request.request_body, equal_to('abcd'))
def test_create_request_with_custom_headers(self): http_request = MagicMock() mock_api = MagicMock() meta = dict(HTTP_CUSTOM_HEADER='custom_value') http_request.META = meta request_body = MagicMock() request = api_request_builder.build_request(http_request=http_request, url='candidates', api=mock_api, request_data={}, request_body=request_body) assert_that(request.request_headers, has_entry('HTTP_CUSTOM_HEADER', 'custom_value'))
def test_create_request_with_anonymous_user(self, parent_breadcrumbs_from, api_breadcrumb_filters, settings): http_request = MagicMock() mock_api = MagicMock() http_request.user.is_anonymous.return_value = True request_body = MagicMock() request = api_request_builder.build_request(http_request=http_request, url='candidates', api=mock_api, request_data={}, request_body=request_body) assert_that(request.user, equal_to(None))
def test_create_request_with_right_request_params(self, parent_breadcrumbs_from, breadcrumb_filters, settings): http_request = MagicMock() mock_api = MagicMock() mock_api.name = 'api_name' mock_api.version = '1.0.0.1' mock_user = http_request.user request_body = MagicMock() http_request.user.is_anonymous.return_value = False breadcrumb_filters.return_value = expected_req_params = {'bar': 'baz'} request = api_request_builder.build_request(http_request=http_request, url='candidates', api=mock_api, request_data={}, request_body=request_body) assert_that(request.user, equal_to(mock_user)) assert_that(request.request_params, equal_to(expected_req_params))