def test_connection_request_when_session_returns_none_raises_py42_error( self, mock_host_resolver, mock_auth, success_requests_session): success_requests_session.send.return_value = None connection = Connection(mock_host_resolver, mock_auth, success_requests_session) with pytest.raises(Py42Error): connection.get(URL)
def test_connection_get_calls_requests_with_get( self, mock_host_resolver, mock_auth, success_requests_session ): connection = Connection(mock_host_resolver, mock_auth, success_requests_session) connection.get(URL) expected = MockPreparedRequest("GET", HOST_ADDRESS + URL, None) success_requests_session.prepare_request.assert_called_once_with(expected)
def test_connection_request_when_given_header_as_param_does_not_persist_header( self, mock_host_resolver, mock_auth, success_requests_session): connection = Connection(mock_host_resolver, mock_auth, success_requests_session) connection.put(URL, data='{"foo":"bar"}', headers={"Foo": "Bar"}) connection.get(URL) request = success_requests_session.prepare_request.call_args[0][0] assert request.headers.get("Foo") is None
def test_connection_request_calls_auth_handler_clears_renews_credentials_when_response_unauthorized( self, mock_host_resolver, mock_auth, renewed_requests_session): connection = Connection(mock_host_resolver, mock_auth, renewed_requests_session) connection.get(URL) assert renewed_requests_session.send.call_count == 2 assert renewed_requests_session.prepare_request.call_count == 2 assert mock_auth.clear_credentials.call_count == 1
def test_connection_request_when_has_data_does_not_use_header_on_following_request_that_does_not_have_data( self, mock_host_resolver, mock_auth, success_requests_session ): connection = Connection(mock_host_resolver, mock_auth, success_requests_session) connection.put(URL, data='{"foo":"bar"}') # Content-Type: application/json connection.get(URL) request = success_requests_session.prepare_request.call_args[0][0] assert request.headers.get("Content-Type") is None
def test_connection_request_raises_unauthorized_error_when_renewal_results_in_401( self, mock_host_resolver, mock_auth, unauthorized_requests_session): connection = Connection(mock_host_resolver, mock_auth, unauthorized_requests_session) with pytest.raises(Py42UnauthorizedError): connection.get(URL) assert unauthorized_requests_session.send.call_count == 2
def test_connection_request_when_proxies_set_passes_proxies_arg_to_session_send( self, proxy_set, mock_host_resolver, mock_auth, success_requests_session): connection = Connection(mock_host_resolver, mock_auth, session=success_requests_session) url = "https://example.com" connection.get(url) connection.post(url) connection.options(url) connection.put(url) connection.patch(url) connection.head(url) connection.delete(url) for call in success_requests_session.send.call_args_list: assert call[1]["proxies"] == {"https": "http://localhost:9999"}
def test_connection_request_calls_auth_handler_when_making_first_request( self, mock_host_resolver, mock_auth, success_requests_session): connection = Connection(mock_host_resolver, mock_auth, success_requests_session) connection.get(URL) assert success_requests_session.prepare_request.call_count == 1
def test_connection_request_with_error_status_code_raises_http_error( self, mock_host_resolver, mock_auth, error_requests_session): connection = Connection(mock_host_resolver, mock_auth, error_requests_session) with pytest.raises(Py42InternalServerError): connection.get(URL)
def test_connection_request_returns_response_when_good_status_code( self, mock_host_resolver, mock_auth, success_requests_session): connection = Connection(mock_host_resolver, mock_auth, success_requests_session) response = connection.get(URL) assert response.text == TEST_RESPONSE_CONTENT