def test_get_throws(): with patch('requests.get') as patched_get: type(patched_get.return_value).status_code = 500 client = ReliableHttpClient(endpoint, {}, retry_policy) client.get("r", [200])
def test_delete_throws(): with patch('requests.delete') as patched_delete: type(patched_delete.return_value).status_code = 500 client = ReliableHttpClient(endpoint, {}, retry_policy) client.delete("r", [200])
def test_post_throws(): with patch('requests.Session.post') as patched_post: type(patched_post.return_value).status_code = 500 client = ReliableHttpClient(endpoint, {}, retry_policy) client.post("r", [200], {})
def test_get_google(): retry_policy = LinearRetryPolicy(0.01, 5) with patch('requests.Session.get') as patched_get: type(patched_get.return_value).status_code = 200 endpoint = Endpoint("http://url.com", GoogleAuth()) client = ReliableHttpClient(endpoint, {}, retry_policy) result = client.get("r", [200]) assert_equals(200, result.status_code)
def test_get(): with patch('requests.get') as patched_get: type(patched_get.return_value).status_code = 200 client = ReliableHttpClient(endpoint, {}, retry_policy) result = client.get("r", [200]) assert_equals(200, result.status_code)
def test_delete(): with patch('requests.Session.delete') as patched_delete: type(patched_delete.return_value).status_code = 200 client = ReliableHttpClient(endpoint, {}, retry_policy) result = client.delete("r", [200]) assert_equals(200, result.status_code)
def test_will_retry_error_no(): global sequential_values, retry_policy retry_policy = MagicMock() retry_policy.should_retry.return_value = False retry_policy.seconds_to_sleep.return_value = 0.01 with patch('requests.get') as patched_get: patched_get.side_effect = requests.exceptions.ConnectionError() client = ReliableHttpClient(endpoint, {}, retry_policy) try: client.get("r", [200]) assert False except HttpClientException: retry_policy.should_retry.assert_called_once_with(None, True, 0)
def test_google_auth(): retry_policy = LinearRetryPolicy(0.01, 5) endpoint = Endpoint("http://url.com", GoogleAuth()) client = ReliableHttpClient(endpoint, {}, retry_policy) assert_is_not_none(client._auth) assert isinstance(client._auth, GoogleAuth) assert hasattr(client._auth, 'url') assert hasattr(client._auth, 'widgets')
def test_invalid_auth_check_auth(): endpoint = Endpoint("http://url.com", "Invalid_AUTH", "username", "password") try: client = ReliableHttpClient(endpoint, {}, retry_policy) assert False except BadUserConfigurationException: assert True
def test_kerberos_auth_check_auth(): endpoint = Endpoint("http://url.com", constants.AUTH_KERBEROS, "username", "password") client = ReliableHttpClient(endpoint, {}, retry_policy) assert_is_not_none(client._auth) assert isinstance(client._auth, HTTPKerberosAuth) assert hasattr(client._auth, 'mutual_authentication') assert_equals(client._auth.mutual_authentication, REQUIRED)
def test_get_will_retry(): global sequential_values, retry_policy retry_policy = MagicMock() retry_policy.should_retry.return_value = True retry_policy.seconds_to_sleep.return_value = 0.01 with patch('requests.get') as patched_get: # When we call assert_equals in this unit test, the side_effect is executed. # So, the last status_code should be repeated. sequential_values = [500, 200, 200] pm = PropertyMock() pm.side_effect = return_sequential type(patched_get.return_value).status_code = pm client = ReliableHttpClient(endpoint, {}, retry_policy) result = client.get("r", [200]) assert_equals(200, result.status_code) retry_policy.should_retry.assert_called_once_with(500, False, 0) retry_policy.seconds_to_sleep.assert_called_once_with(0)
def test_compose_url(): client = ReliableHttpClient(endpoint, {}, retry_policy) composed = client.compose_url("r") assert_equals("http://url.com/r", composed) composed = client.compose_url("/r") assert_equals("http://url.com/r", composed) client = ReliableHttpClient(endpoint, {}, retry_policy) composed = client.compose_url("r") assert_equals("http://url.com/r", composed) composed = client.compose_url("/r") assert_equals("http://url.com/r", composed)
def test_kerberos_auth_custom_configuration(): custom_kerberos_conf = { "mutual_authentication": OPTIONAL, "force_preemptive": True } overrides = { conf.kerberos_auth_configuration.__name__: custom_kerberos_conf } conf.override_all(overrides) endpoint = Endpoint("http://url.com", constants.AUTH_KERBEROS, "username", "password") client = ReliableHttpClient(endpoint, {}, retry_policy) assert_is_not_none(client._auth) assert isinstance(client._auth, HTTPKerberosAuth) assert hasattr(client._auth, 'mutual_authentication') assert_equals(client._auth.mutual_authentication, OPTIONAL) assert hasattr(client._auth, 'force_preemptive') assert_equals(client._auth.force_preemptive, True)
def test_kerberos_auth_check_auth(): endpoint = Endpoint("http://url.com", constants.AUTH_KERBEROS, "username", "password") client = ReliableHttpClient(endpoint, {}, retry_policy) assert_is_not_none(client._auth) assertIsInstance(client._auth, HTTPKerberosAuth)
def test_no_auth_check_auth(): endpoint = Endpoint("http://url.com", constants.NO_AUTH) client = ReliableHttpClient(endpoint, {}, retry_policy) assert_false(hasattr(client, '_auth'))
def test_basic_auth_check_auth(): client = ReliableHttpClient(endpoint, {}, retry_policy) assert_is_not_none(client._auth) assertIsInstance(client._auth, tuple) assert_equals(1, client._auth.count(endpoint.username)) assert_equals(1, client._auth.count(endpoint.password))