Example #1
0
def test_call_with_existing_session(mock_response, mock_endpoint, mock_logger):
    service = mock.Mock()
    service.get_hosts.return_value = ["http://host1.biz"]
    service.required_headers = {}

    session = mock.Mock()
    session.send.return_value = mock_response

    client.call(service, mock_endpoint, session=session, logger=mock_logger)

    assert not session.close.called
Example #2
0
def test_call_with_explicit_encoding(mock_response, mock_endpoint,
                                     mock_logger):
    service = mock.Mock()
    service.get_hosts.return_value = ["http://host1.biz"]
    service.required_headers = {}

    session = mock.Mock()
    session.send.return_value = mock_response

    client.call(service,
                mock_endpoint,
                session=session,
                logger=mock_logger,
                encoding="FAKE-CODEC")

    assert "FAKE-CODEC" == mock_response.encoding
Example #3
0
def test_call_auth_priority(MockSession, mock_adapt_session,
                            mock_build_request_object, mock_endpoint,
                            mock_logger):
    service = mock.Mock()
    service.get_hosts.return_value = ["http://host1.biz"]
    service.required_headers = {}
    service.auth = ("service-user", "p455w0rd!")

    mock_session = MockSession()
    mock_session.proxies = {}
    mock_session.auth = ("session-user", "p455w0rd!")

    mock_adapt_session.return_value = mock_session

    client.call(service,
                mock_endpoint,
                auth=("direct-user", "p455w0rd!"),
                session=mock_session,
                logger=mock_logger)
    assert mock_build_request_object.call_args[1]["auth"] == ("direct-user",
                                                              "p455w0rd!")

    client.call(service,
                mock_endpoint,
                session=mock_session,
                logger=mock_logger)
    assert mock_build_request_object.call_args[1]["auth"] == ("session-user",
                                                              "p455w0rd!")

    mock_session.auth = ()
    client.call(service, mock_endpoint, logger=mock_logger)
    assert mock_build_request_object.call_args[1]["auth"] == ("service-user",
                                                              "p455w0rd!")
Example #4
0
def test_call_when_raw_response_object_requested(mock_response, mock_endpoint,
                                                 mock_logger):
    service = mock.Mock()
    service.get_hosts.return_value = ["http://host1.biz"]
    service.required_headers = {}

    session = mock.Mock()
    session.send.return_value = mock_response

    response = client.call(service,
                           mock_endpoint,
                           session=session,
                           logger=mock_logger,
                           return_raw_response_object=True)

    assert response is mock_response
Example #5
0
def test_return_raw_response_object_in_call_overrides_endpoint(
        mock_response, mock_endpoint):
    service = mock.Mock()
    service.get_hosts.return_value = ["http://host1.biz"]
    service.required_headers = {}

    session = mock.Mock()
    session.send.return_value = mock_response

    mock_endpoint.return_raw_response_object = False

    response = client.call(
        service,
        mock_endpoint,
        session=session,
        logger=mock.Mock(),
        return_raw_response_object=True,
    )

    assert response is mock_response
Example #6
0
def test_call(
    MockSession,
    MockAdapter,
    mock_build_request_object,
    mock_adapt_session,
    mock_timeout,
    mock_response,
    mock_endpoint,
    mock_logger,
):
    service = mock.Mock()
    service.get_hosts.return_value = ["http://host1.biz"]

    mock_endpoint.default_method = "GET"
    mock_endpoint.streaming = True

    request = mock.Mock()
    request.url = "http://host1.biz/foo/"
    mock_build_request_object.return_value = request

    mock_response.status_code = 200
    mock_response.url = "http://host1.biz/foo/"

    mock_session = MockSession()
    mock_session.send.return_value = mock_response
    mock_session.proxies = {}
    mock_session.auth = ()
    mock_adapt_session.return_value = mock_session

    client.call(service,
                mock_endpoint,
                timeout_spec=mock_timeout,
                logger=mock_logger)

    mock_adapt_session.assert_called_once_with(mock_session, MockAdapter())
    mock_session.send.assert_called_once_with(
        request,
        timeout=(mock_timeout.connection_timeout, mock_timeout.read_timeout),
        stream=mock_endpoint.streaming,
        allow_redirects=True,
        proxies=service.proxies,
    )

    mock_logger.info.assert_any_call("%s %s", "GET", "http://host1.biz/foo/")
    mock_logger.info.assert_any_call("%d %s%s", 200, "http://host1.biz/foo/",
                                     "")

    mock_endpoint.default_method = "POST"
    request.method = "POST"

    client.call(service,
                mock_endpoint,
                session=mock_session,
                timeout_spec=mock_timeout,
                logger=mock_logger)

    mock_session.send.assert_any_call(
        request,
        timeout=(mock_timeout.connection_timeout, mock_timeout.read_timeout),
        stream=mock_endpoint.streaming,
        allow_redirects=True,
        proxies=service.proxies,
    )

    mock_logger.info.assert_any_call("%s %s", "GET", "http://host1.biz/foo/")
    mock_logger.info.assert_any_call("%d %s%s", 200, "http://host1.biz/foo/",
                                     "")

    request.method = "PUT"

    client.call(service,
                mock_endpoint,
                method="PUT",
                session=mock_session,
                timeout_spec=mock_timeout,
                logger=mock_logger)

    mock_session.send.assert_any_call(
        request,
        timeout=(mock_timeout.connection_timeout, mock_timeout.read_timeout),
        stream=mock_endpoint.streaming,
        allow_redirects=True,
        proxies=service.proxies,
    )