Ejemplo n.º 1
0
    def test_request_unexpected_api_response(self):
        requestor = MagicMock()
        requestor.do_request.return_value = 'an invalid json response"', 200, {}
        request_handler = MagicMock(return_value=requestor)

        http_client = HttpClient('a_secret_key', request_handler)

        with pytest.raises(exceptions.UnexpectedAPIResponseException):
            http_client._request('GET', 'this_is_an_url', {'some': 'data'})
Ejemplo n.º 2
0
    def test_request_unexpected_api_response(self):
        requestor = MagicMock()
        requestor.do_request.return_value = 'an invalid json response"', 200, {}
        request_handler = MagicMock(return_value=requestor)

        http_client = HttpClient('a_secret_key', request_handler)

        with pytest.raises(exceptions.UnexpectedAPIResponseException):
            http_client._request('GET', 'this_is_an_url', {'some': 'data'})
Ejemplo n.º 3
0
    def test_request_500(self):
        requestor = MagicMock()
        requestor.do_request.return_value = '"a valid json response"', 500, {}
        request_handler = MagicMock(return_value=requestor)

        http_client = HttpClient('a_secret_key', request_handler)

        with pytest.raises(exceptions.PayPlugServerError) as excinfo:
            http_client._request('POST', 'this_is_an_url', {'some': 'data'})

        server_error = excinfo.value
        assert '"a valid json response"' in str(server_error)
Ejemplo n.º 4
0
    def test_request_500(self):
        requestor = MagicMock()
        requestor.do_request.return_value = '"a valid json response"', 500, {}
        request_handler = MagicMock(return_value=requestor)

        http_client = HttpClient('a_secret_key', request_handler)

        with pytest.raises(exceptions.PayPlugServerError) as excinfo:
            http_client._request('POST', 'this_is_an_url', {'some': 'data'})

        server_error = excinfo.value
        assert '"a valid json response"' in str(server_error)
Ejemplo n.º 5
0
    def test_request_ok(self):
        requestor = MagicMock()
        requestor.do_request.return_value = '"a valid json response"', 201, {}
        request_handler = MagicMock(return_value=requestor)

        http_client = HttpClient('a_secret_key', request_handler)
        response, status = http_client._request('POST', 'this_is_an_url', {'some': 'data'})

        assert requestor.do_request.call_count == 1
        do_request_args, _ = requestor.do_request.call_args
        assert do_request_args[0] == 'POST'
        assert do_request_args[1] == 'this_is_an_url'
        assert do_request_args[2]['Authorization'] == 'Bearer a_secret_key'
        assert do_request_args[3] == {'some': 'data'}

        assert response == 'a valid json response'
        assert status == 201
Ejemplo n.º 6
0
    def test_request_ok(self):
        requestor = MagicMock()
        requestor.do_request.return_value = '"a valid json response"', 201, {}
        request_handler = MagicMock(return_value=requestor)

        http_client = HttpClient('a_secret_key', request_handler)
        response, status = http_client._request('POST', 'this_is_an_url',
                                                {'some': 'data'})

        assert requestor.do_request.call_count == 1
        do_request_args, _ = requestor.do_request.call_args
        assert do_request_args[0] == 'POST'
        assert do_request_args[1] == 'this_is_an_url'
        assert do_request_args[2]['Authorization'] == 'Bearer a_secret_key'
        assert do_request_args[3] == {'some': 'data'}

        assert response == 'a valid json response'
        assert status == 201
Ejemplo n.º 7
0
 def test_get(self, _request_mock):
     http_client = HttpClient('a_secret_key', MagicMock())
     http_client.get('this_is_an_url')
     _request_mock.assert_called_once_with('GET', 'this_is_an_url')
Ejemplo n.º 8
0
 def test_delete(self, _request_mock):
     http_client = HttpClient('a_secret_key', MagicMock())
     http_client.delete('this_is_an_url', {'data': 'tada'})
     _request_mock.assert_called_once_with('DELETE', 'this_is_an_url',
                                           {'data': 'tada'})
Ejemplo n.º 9
0
 def test_patch(self, _request_mock):
     http_client = HttpClient('a_secret_key', MagicMock())
     http_client.patch('this_is_an_url', {'data': 'tada'})
     _request_mock.assert_called_once_with('PATCH', 'this_is_an_url',
                                           {'data': 'tada'})
Ejemplo n.º 10
0
 def test_request_handler(self):
     http_client = HttpClient(request_handler=network.UrllibRequest)
     assert http_client._request_handler == network.UrllibRequest
Ejemplo n.º 11
0
 def test_default_request_handler(self):
     http_client = HttpClient()
     assert http_client._request_handler == network.RequestsRequest
Ejemplo n.º 12
0
 def test_delete(self, _request_mock):
     http_client = HttpClient('a_secret_key', MagicMock())
     http_client.delete('this_is_an_url', {'data': 'tada'})
     _request_mock.assert_called_once_with('DELETE', 'this_is_an_url', {'data': 'tada'})
Ejemplo n.º 13
0
 def test_secret_key(self):
     http_client = HttpClient(token='another_secret_key')
     assert http_client._secret_key == 'another_secret_key'
Ejemplo n.º 14
0
 def test_default_secret_key(self):
     http_client = HttpClient()
     assert http_client._secret_key == 'a_secret_key'
Ejemplo n.º 15
0
 def test_get(self, _request_mock):
     http_client = HttpClient('a_secret_key', MagicMock())
     http_client.get('this_is_an_url')
     _request_mock.assert_called_once_with('GET', 'this_is_an_url')
Ejemplo n.º 16
0
 def test_missing_dependencies(self):
     with pytest.raises(RuntimeError) as excinfo:
         HttpClient()
     assert str(excinfo.value
                ) == 'No suitable library to perform HTTP requests found.'
Ejemplo n.º 17
0
 def test_default_no_secret_key(self):
     with pytest.raises(exceptions.SecretKeyNotSet):
         HttpClient()
Ejemplo n.º 18
0
 def test_patch(self, _request_mock):
     http_client = HttpClient('a_secret_key', MagicMock())
     http_client.patch('this_is_an_url', {'data': 'tada'})
     _request_mock.assert_called_once_with('PATCH', 'this_is_an_url', {'data': 'tada'})