Пример #1
0
    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))
Пример #2
0
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
Пример #3
0
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
Пример #4
0
 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'))
Пример #5
0
 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'))
Пример #6
0
 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))
Пример #7
0
    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))