Exemple #1
0
def test_api_request_error_without_json():
    api_request = VxCubeApiRequest()
    response = mock.Mock(**{"ok": False, "json.side_effect": ValueError, "text": ""})
    send_request = mock.Mock(return_value=response)
    api_request.send_request = send_request

    with pytest.raises(VxCubeApiException, match="Unknown error"):
        api_request.request("GET", "http://test.url")
    send_request.assert_called_once()
    send_request.assert_called_with("GET", "http://test.url", params=None, headers={}, data=None)
Exemple #2
0
def test_api_request_not_json_content_and_empty_body():
    api_request = VxCubeApiRequest()
    response = mock.Mock(**{"ok": True, "json.side_effect": ValueError, "text": ""})
    send_request = mock.Mock(return_value=response)
    api_request.send_request = send_request
    rs = api_request.request("GET", "http://test.url")

    assert rs is None
    send_request.assert_called_once()
    send_request.assert_called_with("GET", "http://test.url", params=None, headers={}, data=None)
Exemple #3
0
def test_api_request_error_json_message():
    api_request = VxCubeApiRequest()
    dct = {"message": "test_message"}
    response = mock.Mock(**{"ok": False, "json.return_value": dct})
    send_request = mock.Mock(return_value=response)
    api_request.send_request = send_request

    with pytest.raises(VxCubeApiException, match="test_message"):
        api_request.request("GET", "http://test.url")
    send_request.assert_called_once()
    send_request.assert_called_with("GET", "http://test.url", params=None, headers={}, data=None)
Exemple #4
0
def test_api_request_basic_json():
    api_request = VxCubeApiRequest()
    dct = {"test_key": "test_value"}
    response = mock.Mock(**{"ok": True, "json.return_value": dct})
    send_request = mock.Mock(return_value=response)
    api_request.send_request = send_request
    rs = api_request.request("GET", "http://test.url")

    assert rs is dct
    send_request.assert_called_once()
    send_request.assert_called_with("GET", "http://test.url", params=None, headers={}, data=None)
Exemple #5
0
def test_api_request_send_request_with_connection_error():
    session = mock.Mock(**{"request.side_effect": requests.exceptions.ConnectionError})
    session.close = mock.Mock()
    session.request = mock.Mock(side_effect=(requests.exceptions.ConnectionError, "test_response"))

    api_request = VxCubeApiRequest()
    api_request.session = session
    response = api_request.send_request("test_arg", test_kwarg="test_kwarg")

    assert session.close.assert_called_once() is None
    assert response == "test_response"
Exemple #6
0
def test_api_request_default_parameters():
    api_request = VxCubeApiRequest(default="value")
    dct = {"test_key": "test_value"}
    response = mock.Mock(**{"ok": True, "json.return_value": dct})
    send_request = mock.Mock(return_value=response)
    api_request.send_request = send_request
    rs = api_request.request("GET", "http://test.url", headers={"default": "value2"})

    assert rs is dct
    send_request.assert_called_once()
    send_request.assert_called_with("GET", "http://test.url", params=None, data=None,
                                    headers={"default": "value2"}, default="value")
Exemple #7
0
def test_api_request_output_file_as_file():
    api_request = VxCubeApiRequest()
    response = mock.Mock(**{"ok": True, "iter_content.return_value": [b"test_file_content"]})
    send_request = mock.Mock(return_value=response)
    api_request.send_request = send_request
    output_file = mock.Mock()
    rs = api_request.request("GET", "http://test.url", output_file=output_file)

    assert rs is None
    output_file.write.assert_called_with(b"test_file_content")
    send_request.assert_called_once()
    send_request.assert_called_with("GET", "http://test.url", params=None, headers={}, data=None, stream=True)
Exemple #8
0
def test_api_request_output_file_as_str():
    api_request = VxCubeApiRequest()
    response = mock.Mock(**{"ok": True, "iter_content.return_value": [b"test_file_content"]})
    send_request = mock.Mock(return_value=response)
    api_request.send_request = send_request

    file = mock.mock_open()
    with mock.patch("vxcube_api.raw_api.open", file):
        rs = api_request.request("GET", "http://test.url", output_file="test_file")

    assert rs is None
    file.assert_called_with("test_file", "wb")
    file().write.assert_called_with(b"test_file_content")
    send_request.assert_called_once()
    send_request.assert_called_with("GET", "http://test.url", params=None, headers={}, data=None, stream=True)
Exemple #9
0
def test_api_request_error_request_parameters():
    api_request = VxCubeApiRequest()
    dct = {"k1": "v1", "k2": ["v1", "v2"], "k3": {"bad": "value"}}
    response = mock.Mock(**{"ok": False, "json.return_value": dct, "status_code": 400})
    send_request = mock.Mock(return_value=response)
    api_request.send_request = send_request

    with pytest.raises(VxCubeApiException) as exc_info:
        api_request.request("GET", "http://test.url")

    assert "[k1] v1" in str(exc_info.value)
    assert "[k2] v1; v2" in str(exc_info.value)
    assert "[k3] <UNKNOWN>" in str(exc_info.value)
    send_request.assert_called_once()
    send_request.assert_called_with("GET", "http://test.url", params=None, headers={}, data=None)
Exemple #10
0
def test_api_request_send_request():
    api_request = VxCubeApiRequest()
    request = mock.Mock()
    api_request.session.request = request
    api_request.send_request("test_arg", test_kwarg="test_kwarg")
    assert request.assert_called_with("test_arg", test_kwarg="test_kwarg") is None