Example #1
0
def test_send_message_request_error(mock_request):
    """Should raise RequestError for an amiguous request exception."""
    svc = OnapService()

    mock_request.side_effect = RequestException

    with pytest.raises(RequestError) as exc:
        svc.send_message("GET", 'test get', 'http://my.url/')
    assert exc.type is RequestError

    mock_request.assert_called_once()
Example #2
0
def test_send_message_connection_failed(mock_request):
    """Should raise ResourceNotFound if status code 404."""
    svc = OnapService()

    mock_request.side_effect = ConnectionError

    with pytest.raises(ConnectionFailed) as exc:
        svc.send_message("GET", 'test get', 'http://my.url/')
    assert exc.type is ConnectionFailed

    mock_request.assert_called_once()
Example #3
0
def test_send_message_api_error(mock_request, code):
    """Raise APIError if status code is between 400 and 599, and not 404."""
    svc = OnapService()
    mocked_response = Response()
    mocked_response.status_code = code
    mock_request.return_value = mocked_response

    with pytest.raises(APIError) as exc:
        svc.send_message("GET", 'test get', 'http://my.url/')
    assert exc.type is APIError

    mock_request.assert_called_once()
Example #4
0
def test_send_message_resource_not_found(mock_request):
    """Should raise ResourceNotFound if status code 404."""
    svc = OnapService()

    mocked_response = Response()
    mocked_response.status_code = 404

    mock_request.return_value = mocked_response

    with pytest.raises(ResourceNotFound) as exc:
        svc.send_message("GET", 'test get', 'http://my.url/')
    assert exc.type is ResourceNotFound

    mock_request.assert_called_once()
Example #5
0
def test_send_message_with_basic_auth(mock_request,
                                      mock_set_basic_auth_if_needed):
    """Should give response of request if OK."""
    svc = OnapService()
    mocked_response = Response()
    mocked_response.status_code = 200
    basic_auth = {'username': '******', "password": "******"}
    mock_request.return_value = mocked_response
    expect_headers = {
        "Content-Type": "application/json",
        "Accept": "application/json",
        "Once": "Upon a time"
    }
    response = svc.send_message("GET",
                                'test get',
                                'http://my.url/',
                                headers=expect_headers,
                                basic_auth=basic_auth)
    mock_set_basic_auth_if_needed.assert_called_once_with(basic_auth, ANY)
    mock_request.assert_called_once_with('GET',
                                         'http://my.url/',
                                         headers=expect_headers,
                                         verify=False,
                                         proxies=None)
    assert response == mocked_response
Example #6
0
def test_send_message_error_timeout_no_exception(mock_request):
    """Should return None given if issues on request."""
    svc = OnapService()
    mock_request.side_effect = Timeout()
    response = svc.send_message("GET", 'test get', 'http://my.url/')
    expect_headers = {
        "Content-Type": "application/json",
        "Accept": "application/json",
    }
    mock_request.assert_called_once_with('GET',
                                         'http://my.url/',
                                         headers=expect_headers,
                                         verify=False,
                                         proxies=None)
    assert response == None
Example #7
0
def test_send_message_OK(mock_request):
    """Returns response if OK."""
    svc = OnapService()
    mocked_response = Response()
    mocked_response.status_code = 200
    mock_request.return_value = mocked_response
    expect_headers = {
        "Content-Type": "application/json",
        "Accept": "application/json",
    }
    response = svc.send_message("GET", 'test get', 'http://my.url/')
    mock_request.assert_called_once_with('GET', 'http://my.url/',
                                         headers=expect_headers, verify=False,
                                         proxies=None)
    assert response == mocked_response
Example #8
0
def test_send_message_error_400_no_exception(mock_request):
    """Should give back None if issues on request."""
    svc = OnapService()
    mocked_response = Response()
    mocked_response.status_code = 400
    mock_request.return_value = mocked_response
    response = svc.send_message("GET", 'test get', 'http://my.url/')
    expect_headers = {
        "Content-Type": "application/json",
        "Accept": "application/json",
    }
    mock_request.assert_called_once_with('GET',
                                         'http://my.url/',
                                         headers=expect_headers,
                                         verify=False,
                                         proxies=None)
    assert response == None
Example #9
0
def test_set_header(mock_session):

    OnapService.send_message("GET", 'test get', 'http://my.url/')
    _, _, kwargs = mock_session.return_value.request.mock_calls[0]
    headers = kwargs["headers"]
    assert "test-header-key" not in headers

    mock_session.reset_mock()
    OnapService.set_header({"test-header-key": "test-header-value"})
    OnapService.send_message("GET", 'test get', 'http://my.url/')
    _, _, kwargs = mock_session.return_value.request.mock_calls[0]
    headers = kwargs["headers"]
    assert "test-header-key" in headers
    assert headers["test-header-key"] == "test-header-value"

    mock_session.reset_mock()
    OnapService.send_message("GET", 'test get', 'http://my.url/', headers={})
    _, _, kwargs = mock_session.return_value.request.mock_calls[0]
    headers = kwargs["headers"]
    assert "test-header-key" in headers
    assert headers["test-header-key"] == "test-header-value"

    mock_session.reset_mock()
    OnapService.send_message("GET", 'test get', 'http://my.url/', headers={"test-header-key": "test-header-another-value"})
    _, _, kwargs = mock_session.return_value.request.mock_calls[0]
    headers = kwargs["headers"]
    assert "test-header-key" in headers
    assert headers["test-header-key"] == "test-header-value"

    mock_session.reset_mock()
    OnapService.set_header(None)
    OnapService.send_message("GET", 'test get', 'http://my.url/')
    _, _, kwargs = mock_session.return_value.request.mock_calls[0]
    headers = kwargs["headers"]
    assert "test-header-key" not in headers

    def test_header_method():
        return {"test-header-callable-key": "test-header-callable-value"}

    mock_session.reset_mock()
    OnapService.set_header(test_header_method)
    OnapService.send_message("GET", 'test get', 'http://my.url/', headers={})
    _, _, kwargs = mock_session.return_value.request.mock_calls[0]
    headers = kwargs["headers"]
    assert "test-header-callable-key" in headers
    assert headers["test-header-callable-key"] == "test-header-callable-value"

    mock_session.reset_mock()
    OnapService.send_message("GET", 'test get', 'http://my.url/', headers={"test-header-key": "test-header-value"})
    _, _, kwargs = mock_session.return_value.request.mock_calls[0]
    headers = kwargs["headers"]
    assert "test-header-callable-key" in headers
    assert headers["test-header-callable-key"] == "test-header-callable-value"
    assert "test-header-key" in headers
    assert headers["test-header-key"] == "test-header-value"

    mock_session.reset_mock()
    OnapService.set_header({"test-header-dict-key": "test-header-dict-value"})
    OnapService.send_message("GET", 'test get', 'http://my.url/', headers={})
    _, _, kwargs = mock_session.return_value.request.mock_calls[0]
    headers = kwargs["headers"]
    assert "test-header-callable-key" in headers
    assert headers["test-header-callable-key"] == "test-header-callable-value"
    assert "test-header-dict-key" in headers
    assert headers["test-header-dict-key"] == "test-header-dict-value"

    mock_session.reset_mock()
    OnapService.send_message("GET", 'test get', 'http://my.url/', headers={"test-header-common-key": "test-header-common-value"})
    _, _, kwargs = mock_session.return_value.request.mock_calls[0]
    headers = kwargs["headers"]
    assert "test-header-callable-key" in headers
    assert headers["test-header-callable-key"] == "test-header-callable-value"
    assert "test-header-dict-key" in headers
    assert headers["test-header-dict-key"] == "test-header-dict-value"
    assert "test-header-common-key" in headers
    assert headers["test-header-common-key"] == "test-header-common-value"