Esempio n. 1
0
    def test_handle_api_call_for_bad_json_data(self,
                                               mock_is_valid_resource,
                                               mock_resolve_action,
                                               mock_build_request_data):
        mock_is_valid_resource.return_value = True
        mock_resolve_action.return_value = MagicMock()
        mock_build_request_data.return_value = expected_request_data = {
            'error_message': 'Expected } at line 3'}

        mock_http_request = MagicMock()
        mock_api = MagicMock()
        mock_http_request.META = http_request_meta = MagicMock()
        mock_http_request.read.return_value = request_body = MagicMock()


        response = django_http_handler.handle_api_call(
            mock_http_request, 'test_endpoint', mock_api)

        mock_is_valid_resource.assert_called_once_with('test_endpoint',
                                                       mock_api)
        mock_resolve_action.assert_called_once_with(mock_http_request,
                                                    'test_endpoint', mock_api)
        mock_build_request_data.assert_called_once_with(request_body, http_request_meta)
        self.assertIsInstance(response, HttpResponseBadRequest)
        assert json.loads(response.content) == expected_request_data
Esempio n. 2
0
    def test_handle_api_call(self,
                             mock_is_valid_resource,
                             mock_resolve_action,
                             mock_build_response,
                             mock_build_request,
                             mock_build_request_data):
        mock_is_valid_resource.return_value = True
        mock_resolve_action.return_value = expected_action = MagicMock()
        expected_action.return_value = expected_response = MagicMock()
        mock_build_request.return_value = expected_request = MagicMock()
        mock_build_response.return_value = expected_http_response = MagicMock()
        mock_build_request_data.return_value = expected_request_data = {}
        mock_http_request = MagicMock()
        mock_http_request.read.return_value = request_body = MagicMock()
        mock_api = MagicMock()
        url = 'test_endpoint'

        http_response = django_http_handler.handle_api_call(
            mock_http_request, url, mock_api)

        mock_is_valid_resource.assert_called_once_with('test_endpoint',
                                                       mock_api)
        mock_resolve_action.assert_called_once_with(mock_http_request,
                                                    'test_endpoint',
                                                    mock_api)
        mock_build_request.assert_called_once_with(
            http_request=mock_http_request,
            url=url, api=mock_api, request_data=expected_request_data,
            request_body=request_body)
        expected_action.assert_called_once_with(expected_request)
        assert_that(http_response, equal_to(expected_http_response))
        mock_build_response.assert_called_once_with(mock_http_request,
                                                    expected_response)
Esempio n. 3
0
    def test_handle_api_call_for_unhandled_action(self,
                                                  mock_is_valid_resource,
                                                  mock_resolve_action,
                                                  mock_build_response,
                                                  mock_build_request):
        mock_is_valid_resource.return_value = True
        mock_resolve_action.return_value = None

        mock_http_request = MagicMock()
        mock_api = MagicMock()

        response = django_http_handler.handle_api_call(
            mock_http_request, 'test_endpoint', mock_api)

        mock_is_valid_resource.assert_called_once_with('test_endpoint',
                                                       mock_api)
        mock_resolve_action.assert_called_once_with(mock_http_request,
                                                    'test_endpoint', mock_api)
        self.assertIsInstance(response, HttpResponseNotAllowed)