diff --git a/auth0/v3/authentication/base.py b/auth0/v3/authentication/base.py index 8e60ff88..bfb770f7 100644 --- a/auth0/v3/authentication/base.py +++ b/auth0/v3/authentication/base.py @@ -16,11 +16,15 @@ class AuthenticationBase(object): Args: telemetry (bool, optional): Enable or disable Telemetry (defaults to True) + timeout (float or tuple, optional): Change the requests + connect and read timeout. Pass a tuple to specify + both values separately or a float to set both to it. + (defaults to 5.0 for both) """ - def __init__(self, domain, telemetry=True): + def __init__(self, domain, telemetry=True, timeout=5.0): self.domain = domain - + self.timeout = timeout self.base_headers = {'Content-Type': 'application/json'} if telemetry: @@ -43,13 +47,13 @@ def __init__(self, domain, telemetry=True): def post(self, url, data=None, headers=None): request_headers = self.base_headers.copy() request_headers.update(headers or {}) - response = requests.post(url=url, json=data, headers=request_headers) + response = requests.post(url=url, json=data, headers=request_headers, timeout=self.timeout) return self._process_response(response) def get(self, url, params=None, headers=None): request_headers = self.base_headers.copy() request_headers.update(headers or {}) - response = requests.get(url=url, params=params, headers=request_headers) + response = requests.get(url=url, params=params, headers=request_headers, timeout=self.timeout) return self._process_response(response) def _process_response(self, response): diff --git a/auth0/v3/management/blacklists.py b/auth0/v3/management/blacklists.py index 534f1909..c1fe86bb 100644 --- a/auth0/v3/management/blacklists.py +++ b/auth0/v3/management/blacklists.py @@ -11,11 +11,16 @@ class Blacklists(object): telemetry (bool, optional): Enable or disable Telemetry (defaults to True) + + timeout (float or tuple, optional): Change the requests + connect and read timeout. Pass a tuple to specify + both values separately or a float to set both to it. + (defaults to 5.0 for both) """ - def __init__(self, domain, token, telemetry=True): + def __init__(self, domain, token, telemetry=True, timeout=5.0): self.url = 'https://{}/api/v2/blacklists/tokens'.format(domain) - self.client = RestClient(jwt=token, telemetry=telemetry) + self.client = RestClient(jwt=token, telemetry=telemetry, timeout=timeout) def get(self, aud=None): """Retrieves the jti and aud of all tokens in the blacklist. diff --git a/auth0/v3/management/client_grants.py b/auth0/v3/management/client_grants.py index 43222569..b64ae820 100644 --- a/auth0/v3/management/client_grants.py +++ b/auth0/v3/management/client_grants.py @@ -12,11 +12,16 @@ class ClientGrants(object): telemetry (bool, optional): Enable or disable Telemetry (defaults to True) + + timeout (float or tuple, optional): Change the requests + connect and read timeout. Pass a tuple to specify + both values separately or a float to set both to it. + (defaults to 5.0 for both) """ - def __init__(self, domain, token, telemetry=True): + def __init__(self, domain, token, telemetry=True, timeout=5.0): self.domain = domain - self.client = RestClient(jwt=token, telemetry=telemetry) + self.client = RestClient(jwt=token, telemetry=telemetry, timeout=timeout) def _url(self, id=None): url = 'https://{}/api/v2/client-grants'.format(self.domain) diff --git a/auth0/v3/management/clients.py b/auth0/v3/management/clients.py index c0142179..3bedd589 100644 --- a/auth0/v3/management/clients.py +++ b/auth0/v3/management/clients.py @@ -12,11 +12,16 @@ class Clients(object): telemetry (bool, optional): Enable or disable Telemetry (defaults to True) + + timeout (float or tuple, optional): Change the requests + connect and read timeout. Pass a tuple to specify + both values separately or a float to set both to it. + (defaults to 5.0 for both) """ - def __init__(self, domain, token, telemetry=True): + def __init__(self, domain, token, telemetry=True, timeout=5.0): self.domain = domain - self.client = RestClient(jwt=token, telemetry=telemetry) + self.client = RestClient(jwt=token, telemetry=telemetry, timeout=timeout) def _url(self, id=None): url = 'https://{}/api/v2/clients'.format(self.domain) diff --git a/auth0/v3/management/connections.py b/auth0/v3/management/connections.py index 2e2db1c5..3c372df8 100644 --- a/auth0/v3/management/connections.py +++ b/auth0/v3/management/connections.py @@ -11,11 +11,16 @@ class Connections(object): telemetry (bool, optional): Enable or disable Telemetry (defaults to True) + + timeout (float or tuple, optional): Change the requests + connect and read timeout. Pass a tuple to specify + both values separately or a float to set both to it. + (defaults to 5.0 for both) """ - def __init__(self, domain, token, telemetry=True): + def __init__(self, domain, token, telemetry=True, timeout=5.0): self.domain = domain - self.client = RestClient(jwt=token, telemetry=telemetry) + self.client = RestClient(jwt=token, telemetry=telemetry, timeout=timeout) def _url(self, id=None): url = 'https://{}/api/v2/connections'.format(self.domain) diff --git a/auth0/v3/management/custom_domains.py b/auth0/v3/management/custom_domains.py index 98e3d45e..c31f19d3 100644 --- a/auth0/v3/management/custom_domains.py +++ b/auth0/v3/management/custom_domains.py @@ -12,11 +12,16 @@ class CustomDomains(object): telemetry (bool, optional): Enable or disable Telemetry (defaults to True) + + timeout (float or tuple, optional): Change the requests + connect and read timeout. Pass a tuple to specify + both values separately or a float to set both to it. + (defaults to 5.0 for both) """ - def __init__(self, domain, token, telemetry=True): + def __init__(self, domain, token, telemetry=True, timeout=5.0): self.domain = domain - self.client = RestClient(jwt=token, telemetry=telemetry) + self.client = RestClient(jwt=token, telemetry=telemetry, timeout=timeout) def _url(self, id=None): url = 'https://%s/api/v2/custom-domains' % self.domain diff --git a/auth0/v3/management/device_credentials.py b/auth0/v3/management/device_credentials.py index 516a70ac..6b7b31d3 100644 --- a/auth0/v3/management/device_credentials.py +++ b/auth0/v3/management/device_credentials.py @@ -12,11 +12,16 @@ class DeviceCredentials(object): telemetry (bool, optional): Enable or disable Telemetry (defaults to True) + + timeout (float or tuple, optional): Change the requests + connect and read timeout. Pass a tuple to specify + both values separately or a float to set both to it. + (defaults to 5.0 for both) """ - def __init__(self, domain, token, telemetry=True): + def __init__(self, domain, token, telemetry=True, timeout=5.0): self.domain = domain - self.client = RestClient(jwt=token, telemetry=telemetry) + self.client = RestClient(jwt=token, telemetry=telemetry, timeout=timeout) def _url(self, id=None): url = 'https://{}/api/v2/device-credentials'.format(self.domain) diff --git a/auth0/v3/management/email_templates.py b/auth0/v3/management/email_templates.py index 365b4d98..dcda2bfa 100644 --- a/auth0/v3/management/email_templates.py +++ b/auth0/v3/management/email_templates.py @@ -12,11 +12,16 @@ class EmailTemplates(object): telemetry (bool, optional): Enable or disable Telemetry (defaults to True) + + timeout (float or tuple, optional): Change the requests + connect and read timeout. Pass a tuple to specify + both values separately or a float to set both to it. + (defaults to 5.0 for both) """ - def __init__(self, domain, token, telemetry=True): + def __init__(self, domain, token, telemetry=True, timeout=5.0): self.domain = domain - self.client = RestClient(jwt=token, telemetry=telemetry) + self.client = RestClient(jwt=token, telemetry=telemetry, timeout=timeout) def _url(self, id=None): url = 'https://{}/api/v2/email-templates'.format(self.domain) diff --git a/auth0/v3/management/emails.py b/auth0/v3/management/emails.py index e709846b..e88f4e73 100644 --- a/auth0/v3/management/emails.py +++ b/auth0/v3/management/emails.py @@ -12,11 +12,16 @@ class Emails(object): telemetry (bool, optional): Enable or disable Telemetry (defaults to True) + + timeout (float or tuple, optional): Change the requests + connect and read timeout. Pass a tuple to specify + both values separately or a float to set both to it. + (defaults to 5.0 for both) """ - def __init__(self, domain, token, telemetry=True): + def __init__(self, domain, token, telemetry=True, timeout=5.0): self.domain = domain - self.client = RestClient(jwt=token, telemetry=telemetry) + self.client = RestClient(jwt=token, telemetry=telemetry, timeout=timeout) def _url(self, id=None): url = 'https://{}/api/v2/emails/provider'.format(self.domain) diff --git a/auth0/v3/management/grants.py b/auth0/v3/management/grants.py index da3b332a..d80c4f48 100644 --- a/auth0/v3/management/grants.py +++ b/auth0/v3/management/grants.py @@ -12,11 +12,16 @@ class Grants(object): telemetry (bool, optional): Enable or disable Telemetry (defaults to True) + + timeout (float or tuple, optional): Change the requests + connect and read timeout. Pass a tuple to specify + both values separately or a float to set both to it. + (defaults to 5.0 for both) """ - def __init__(self, domain, token, telemetry=True): + def __init__(self, domain, token, telemetry=True, timeout=5.0): self.domain = domain - self.client = RestClient(jwt=token, telemetry=telemetry) + self.client = RestClient(jwt=token, telemetry=telemetry, timeout=timeout) def _url(self, id=None): url = 'https://%s/api/v2/grants' % self.domain diff --git a/auth0/v3/management/guardian.py b/auth0/v3/management/guardian.py index e421b4b7..ff77a60a 100644 --- a/auth0/v3/management/guardian.py +++ b/auth0/v3/management/guardian.py @@ -12,11 +12,16 @@ class Guardian(object): telemetry (bool, optional): Enable or disable Telemetry (defaults to True) + + timeout (float or tuple, optional): Change the requests + connect and read timeout. Pass a tuple to specify + both values separately or a float to set both to it. + (defaults to 5.0 for both) """ - def __init__(self, domain, token, telemetry=True): + def __init__(self, domain, token, telemetry=True, timeout=5.0): self.domain = domain - self.client = RestClient(jwt=token, telemetry=telemetry) + self.client = RestClient(jwt=token, telemetry=telemetry, timeout=timeout) def _url(self, id=None): url = 'https://{}/api/v2/guardian'.format(self.domain) diff --git a/auth0/v3/management/jobs.py b/auth0/v3/management/jobs.py index 9d8864b3..eeb2dd4c 100644 --- a/auth0/v3/management/jobs.py +++ b/auth0/v3/management/jobs.py @@ -12,11 +12,16 @@ class Jobs(object): telemetry (bool, optional): Enable or disable Telemetry (defaults to True) + + timeout (float or tuple, optional): Change the requests + connect and read timeout. Pass a tuple to specify + both values separately or a float to set both to it. + (defaults to 5.0 for both) """ - def __init__(self, domain, token, telemetry=True): + def __init__(self, domain, token, telemetry=True, timeout=5.0): self.domain = domain - self.client = RestClient(jwt=token, telemetry=telemetry) + self.client = RestClient(jwt=token, telemetry=telemetry, timeout=timeout) def _url(self, path=None): url = 'https://{}/api/v2/jobs'.format(self.domain) diff --git a/auth0/v3/management/logs.py b/auth0/v3/management/logs.py index d7b70288..854c4ac2 100644 --- a/auth0/v3/management/logs.py +++ b/auth0/v3/management/logs.py @@ -12,11 +12,16 @@ class Logs(object): telemetry (bool, optional): Enable or disable Telemetry (defaults to True) + + timeout (float or tuple, optional): Change the requests + connect and read timeout. Pass a tuple to specify + both values separately or a float to set both to it. + (defaults to 5.0 for both) """ - def __init__(self, domain, token, telemetry=True): + def __init__(self, domain, token, telemetry=True, timeout=5.0): self.domain = domain - self.client = RestClient(jwt=token, telemetry=telemetry) + self.client = RestClient(jwt=token, telemetry=telemetry, timeout=timeout) def _url(self, id=None): url = 'https://{}/api/v2/logs'.format(self.domain) diff --git a/auth0/v3/management/resource_servers.py b/auth0/v3/management/resource_servers.py index 90a6be7b..61115dbb 100644 --- a/auth0/v3/management/resource_servers.py +++ b/auth0/v3/management/resource_servers.py @@ -12,11 +12,16 @@ class ResourceServers(object): telemetry (bool, optional): Enable or disable Telemetry (defaults to True) + + timeout (float or tuple, optional): Change the requests + connect and read timeout. Pass a tuple to specify + both values separately or a float to set both to it. + (defaults to 5.0 for both) """ - def __init__(self, domain, token, telemetry=True): + def __init__(self, domain, token, telemetry=True, timeout=5.0): self.domain = domain - self.client = RestClient(jwt=token, telemetry=telemetry) + self.client = RestClient(jwt=token, telemetry=telemetry, timeout=timeout) def _url(self, id=None): url = 'https://{}/api/v2/resource-servers'.format(self.domain) diff --git a/auth0/v3/management/rest.py b/auth0/v3/management/rest.py index 013a1d63..8e6fd20e 100644 --- a/auth0/v3/management/rest.py +++ b/auth0/v3/management/rest.py @@ -11,10 +11,19 @@ class RestClient(object): - """Provides simple methods for handling all RESTful api endpoints. """ - - def __init__(self, jwt, telemetry=True): + """Provides simple methods for handling all RESTful api endpoints. + + Args: + telemetry (bool, optional): Enable or disable Telemetry + (defaults to True) + timeout (float or tuple, optional): Change the requests + connect and read timeout. Pass a tuple to specify + both values separately or a float to set both to it. + (defaults to 5.0 for both) + """ + def __init__(self, jwt, telemetry=True, timeout=5.0): self.jwt = jwt + self.timeout = timeout self.base_headers = { 'Authorization': 'Bearer {}'.format(self.jwt), @@ -40,38 +49,38 @@ def __init__(self, jwt, telemetry=True): def get(self, url, params=None): headers = self.base_headers.copy() - response = requests.get(url, params=params, headers=headers) + response = requests.get(url, params=params, headers=headers, timeout=self.timeout) return self._process_response(response) def post(self, url, data=None): headers = self.base_headers.copy() - response = requests.post(url, json=data, headers=headers) + response = requests.post(url, json=data, headers=headers, timeout=self.timeout) return self._process_response(response) def file_post(self, url, data=None, files=None): headers = self.base_headers.copy() headers.pop('Content-Type', None) - response = requests.post(url, data=data, files=files, headers=headers) + response = requests.post(url, data=data, files=files, headers=headers, timeout=self.timeout) return self._process_response(response) def patch(self, url, data=None): headers = self.base_headers.copy() - response = requests.patch(url, json=data, headers=headers) + response = requests.patch(url, json=data, headers=headers, timeout=self.timeout) return self._process_response(response) def put(self, url, data=None): headers = self.base_headers.copy() - response = requests.put(url, json=data, headers=headers) + response = requests.put(url, json=data, headers=headers, timeout=self.timeout) return self._process_response(response) def delete(self, url, params=None, data=None): headers = self.base_headers.copy() - response = requests.delete(url, headers=headers, params=params or {}, json=data) + response = requests.delete(url, headers=headers, params=params or {}, json=data, timeout=self.timeout) return self._process_response(response) def _process_response(self, response): diff --git a/auth0/v3/management/roles.py b/auth0/v3/management/roles.py index 0503d8ed..31c004e0 100644 --- a/auth0/v3/management/roles.py +++ b/auth0/v3/management/roles.py @@ -12,11 +12,16 @@ class Roles(object): telemetry (bool, optional): Enable or disable Telemetry (defaults to True) + + timeout (float or tuple, optional): Change the requests + connect and read timeout. Pass a tuple to specify + both values separately or a float to set both to it. + (defaults to 5.0 for both) """ - def __init__(self, domain, token, telemetry=True): + def __init__(self, domain, token, telemetry=True, timeout=5.0): self.domain = domain - self.client = RestClient(jwt=token, telemetry=telemetry) + self.client = RestClient(jwt=token, telemetry=telemetry, timeout=timeout) def _url(self, id=None): url = 'https://{}/api/v2/roles'.format(self.domain) diff --git a/auth0/v3/management/rules.py b/auth0/v3/management/rules.py index 5838a65d..10173623 100644 --- a/auth0/v3/management/rules.py +++ b/auth0/v3/management/rules.py @@ -12,11 +12,16 @@ class Rules(object): telemetry (bool, optional): Enable or disable Telemetry (defaults to True) + + timeout (float or tuple, optional): Change the requests + connect and read timeout. Pass a tuple to specify + both values separately or a float to set both to it. + (defaults to 5.0 for both) """ - def __init__(self, domain, token, telemetry=True): + def __init__(self, domain, token, telemetry=True, timeout=5.0): self.domain = domain - self.client = RestClient(jwt=token, telemetry=telemetry) + self.client = RestClient(jwt=token, telemetry=telemetry, timeout=timeout) def _url(self, id=None): url = 'https://{}/api/v2/rules'.format(self.domain) diff --git a/auth0/v3/management/rules_configs.py b/auth0/v3/management/rules_configs.py index 686f1013..b29cebe1 100644 --- a/auth0/v3/management/rules_configs.py +++ b/auth0/v3/management/rules_configs.py @@ -12,11 +12,16 @@ class RulesConfigs(object): telemetry (bool, optional): Enable or disable Telemetry (defaults to True) + + timeout (float or tuple, optional): Change the requests + connect and read timeout. Pass a tuple to specify + both values separately or a float to set both to it. + (defaults to 5.0 for both) """ - def __init__(self, domain, token, telemetry=True): + def __init__(self, domain, token, telemetry=True, timeout=5.0): self.domain = domain - self.client = RestClient(jwt=token, telemetry=telemetry) + self.client = RestClient(jwt=token, telemetry=telemetry, timeout=timeout) def _url(self, id=None): url = 'https://%s/api/v2/rules-configs' % self.domain diff --git a/auth0/v3/management/stats.py b/auth0/v3/management/stats.py index a03507d6..8c34ad50 100644 --- a/auth0/v3/management/stats.py +++ b/auth0/v3/management/stats.py @@ -11,11 +11,16 @@ class Stats(object): telemetry (bool, optional): Enable or disable Telemetry (defaults to True) + + timeout (float or tuple, optional): Change the requests + connect and read timeout. Pass a tuple to specify + both values separately or a float to set both to it. + (defaults to 5.0 for both) """ - def __init__(self, domain, token, telemetry=True): + def __init__(self, domain, token, telemetry=True, timeout=5.0): self.domain = domain - self.client = RestClient(jwt=token, telemetry=telemetry) + self.client = RestClient(jwt=token, telemetry=telemetry, timeout=timeout) def _url(self, action): return 'https://{}/api/v2/stats/{}'.format(self.domain, action) diff --git a/auth0/v3/management/tenants.py b/auth0/v3/management/tenants.py index b1faef70..8b6ba727 100644 --- a/auth0/v3/management/tenants.py +++ b/auth0/v3/management/tenants.py @@ -12,11 +12,16 @@ class Tenants(object): telemetry (bool, optional): Enable or disable Telemetry (defaults to True) + + timeout (float or tuple, optional): Change the requests + connect and read timeout. Pass a tuple to specify + both values separately or a float to set both to it. + (defaults to 5.0 for both) """ - def __init__(self, domain, token, telemetry=True): + def __init__(self, domain, token, telemetry=True, timeout=5.0): self.domain = domain - self.client = RestClient(jwt=token, telemetry=telemetry) + self.client = RestClient(jwt=token, telemetry=telemetry, timeout=timeout) def _url(self): return 'https://{}/api/v2/tenants/settings'.format(self.domain) diff --git a/auth0/v3/management/tickets.py b/auth0/v3/management/tickets.py index bffd9f53..76677875 100644 --- a/auth0/v3/management/tickets.py +++ b/auth0/v3/management/tickets.py @@ -12,11 +12,16 @@ class Tickets(object): telemetry (bool, optional): Enable or disable Telemetry (defaults to True) + + timeout (float or tuple, optional): Change the requests + connect and read timeout. Pass a tuple to specify + both values separately or a float to set both to it. + (defaults to 5.0 for both) """ - def __init__(self, domain, token, telemetry=True): + def __init__(self, domain, token, telemetry=True, timeout=5.0): self.domain = domain - self.client = RestClient(jwt=token, telemetry=telemetry) + self.client = RestClient(jwt=token, telemetry=telemetry, timeout=timeout) def _url(self, action): return 'https://{}/api/v2/tickets/{}'.format(self.domain, action) diff --git a/auth0/v3/management/user_blocks.py b/auth0/v3/management/user_blocks.py index 82af8e51..e7670a35 100644 --- a/auth0/v3/management/user_blocks.py +++ b/auth0/v3/management/user_blocks.py @@ -12,11 +12,16 @@ class UserBlocks(object): telemetry (bool, optional): Enable or disable Telemetry (defaults to True) + + timeout (float or tuple, optional): Change the requests + connect and read timeout. Pass a tuple to specify + both values separately or a float to set both to it. + (defaults to 5.0 for both) """ - def __init__(self, domain, token, telemetry=True): + def __init__(self, domain, token, telemetry=True, timeout=5.0): self.domain = domain - self.client = RestClient(jwt=token, telemetry=telemetry) + self.client = RestClient(jwt=token, telemetry=telemetry, timeout=timeout) def _url(self, id=None): url = 'https://{}/api/v2/user-blocks'.format(self.domain) diff --git a/auth0/v3/management/users.py b/auth0/v3/management/users.py index 79514e09..6bc78303 100644 --- a/auth0/v3/management/users.py +++ b/auth0/v3/management/users.py @@ -12,11 +12,16 @@ class Users(object): telemetry (bool, optional): Enable or disable Telemetry (defaults to True) + + timeout (float or tuple, optional): Change the requests + connect and read timeout. Pass a tuple to specify + both values separately or a float to set both to it. + (defaults to 5.0 for both) """ - def __init__(self, domain, token, telemetry=True): + def __init__(self, domain, token, telemetry=True, timeout=5.0): self.domain = domain - self.client = RestClient(jwt=token, telemetry=telemetry) + self.client = RestClient(jwt=token, telemetry=telemetry, timeout=timeout) def _url(self, id=None): url = 'https://{}/api/v2/users'.format(self.domain) diff --git a/auth0/v3/management/users_by_email.py b/auth0/v3/management/users_by_email.py index c9f582e7..295ea0b5 100644 --- a/auth0/v3/management/users_by_email.py +++ b/auth0/v3/management/users_by_email.py @@ -12,11 +12,16 @@ class UsersByEmail(object): telemetry (bool, optional): Enable or disable Telemetry (defaults to True) + + timeout (float or tuple, optional): Change the requests + connect and read timeout. Pass a tuple to specify + both values separately or a float to set both to it. + (defaults to 5.0 for both) """ - def __init__(self, domain, token, telemetry=True): + def __init__(self, domain, token, telemetry=True, timeout=5.0): self.domain = domain - self.client = RestClient(jwt=token, telemetry=telemetry) + self.client = RestClient(jwt=token, telemetry=telemetry, timeout=timeout) def _url(self): url = 'https://{}/api/v2/users-by-email'.format(self.domain) diff --git a/auth0/v3/test/authentication/test_base.py b/auth0/v3/test/authentication/test_base.py index 804c4593..b2426a17 100644 --- a/auth0/v3/test/authentication/test_base.py +++ b/auth0/v3/test/authentication/test_base.py @@ -1,5 +1,7 @@ import base64 import json +from time import sleep + import mock import sys import requests @@ -43,7 +45,7 @@ def test_telemetry_disabled(self): @mock.patch('requests.post') def test_post(self, mock_post): - ab = AuthenticationBase('auth0.com', telemetry=False) + ab = AuthenticationBase('auth0.com', telemetry=False, timeout=(10, 2)) mock_post.return_value.status_code = 200 mock_post.return_value.text = '{"x": "y"}' @@ -51,7 +53,7 @@ def test_post(self, mock_post): data = ab.post('the-url', data={'a': 'b'}, headers={'c': 'd'}) mock_post.assert_called_with(url='the-url', json={'a': 'b'}, - headers={'c': 'd', 'Content-Type': 'application/json'}) + headers={'c': 'd', 'Content-Type': 'application/json'}, timeout=(10, 2)) self.assertEqual(data, {'x': 'y'}) @@ -66,7 +68,7 @@ def test_post_with_defaults(self, mock_post): data = ab.post('the-url') mock_post.assert_called_with(url='the-url', json=None, - headers={'Content-Type': 'application/json'}) + headers={'Content-Type': 'application/json'}, timeout=5.0) self.assertEqual(data, {'x': 'y'}) @@ -174,7 +176,7 @@ def test_post_error_with_no_response_text(self, mock_post): @mock.patch('requests.get') def test_get(self, mock_get): - ab = AuthenticationBase('auth0.com', telemetry=False) + ab = AuthenticationBase('auth0.com', telemetry=False, timeout=(10, 2)) mock_get.return_value.status_code = 200 mock_get.return_value.text = '{"x": "y"}' @@ -182,7 +184,7 @@ def test_get(self, mock_get): data = ab.get('the-url', params={'a': 'b'}, headers={'c': 'd'}) mock_get.assert_called_with(url='the-url', params={'a': 'b'}, - headers={'c': 'd', 'Content-Type': 'application/json'}) + headers={'c': 'd', 'Content-Type': 'application/json'}, timeout=(10, 2)) self.assertEqual(data, {'x': 'y'}) @@ -197,7 +199,7 @@ def test_get_with_defaults(self, mock_get): data = ab.get('the-url') mock_get.assert_called_with(url='the-url', params=None, - headers={'Content-Type': 'application/json'}) + headers={'Content-Type': 'application/json'}, timeout=5.0) self.assertEqual(data, {'x': 'y'}) @@ -221,3 +223,15 @@ def test_get_includes_telemetry(self, mock_get): self.assertIn('Auth0-Client', headers) self.assertEqual(data, {"x": "y"}) + + def test_get_can_timeout(self): + ab = AuthenticationBase('auth0.com', timeout=0.00001) + + with self.assertRaises(requests.exceptions.Timeout): + ab.get('https://google.com', params={'a': 'b'}, headers={'c': 'd'}) + + def test_post_can_timeout(self): + ab = AuthenticationBase('auth0.com', timeout=0.00001) + + with self.assertRaises(requests.exceptions.Timeout): + ab.post('https://google.com', data={'a': 'b'}, headers={'c': 'd'}) diff --git a/auth0/v3/test/management/test_blacklists.py b/auth0/v3/test/management/test_blacklists.py index 27065af4..cbf74e96 100644 --- a/auth0/v3/test/management/test_blacklists.py +++ b/auth0/v3/test/management/test_blacklists.py @@ -5,6 +5,12 @@ class TestBlacklists(unittest.TestCase): + def test_init_with_optionals(self): + t = Blacklists(domain='domain', token='jwttoken', telemetry=False, timeout=(10, 2)) + self.assertEqual(t.client.timeout, (10, 2)) + telemetry_header = t.client.base_headers.get('Auth0-Client', None) + self.assertEqual(telemetry_header, None) + @mock.patch('auth0.v3.management.blacklists.RestClient') def test_get(self, mock_rc): mock_instance = mock_rc.return_value diff --git a/auth0/v3/test/management/test_client_grants.py b/auth0/v3/test/management/test_client_grants.py index 1155649e..399c5cb8 100644 --- a/auth0/v3/test/management/test_client_grants.py +++ b/auth0/v3/test/management/test_client_grants.py @@ -5,6 +5,12 @@ class TestClientGrants(unittest.TestCase): + def test_init_with_optionals(self): + t = ClientGrants(domain='domain', token='jwttoken', telemetry=False, timeout=(10, 2)) + self.assertEqual(t.client.timeout, (10, 2)) + telemetry_header = t.client.base_headers.get('Auth0-Client', None) + self.assertEqual(telemetry_header, None) + @mock.patch('auth0.v3.management.client_grants.RestClient') def test_all(self, mock_rc): mock_instance = mock_rc.return_value diff --git a/auth0/v3/test/management/test_clients.py b/auth0/v3/test/management/test_clients.py index 4e4c10ee..58be544d 100644 --- a/auth0/v3/test/management/test_clients.py +++ b/auth0/v3/test/management/test_clients.py @@ -5,6 +5,12 @@ class TestClients(unittest.TestCase): + def test_init_with_optionals(self): + t = Clients(domain='domain', token='jwttoken', telemetry=False, timeout=(10, 2)) + self.assertEqual(t.client.timeout, (10, 2)) + telemetry_header = t.client.base_headers.get('Auth0-Client', None) + self.assertEqual(telemetry_header, None) + @mock.patch('auth0.v3.management.clients.RestClient') def test_all(self, mock_rc): mock_instance = mock_rc.return_value diff --git a/auth0/v3/test/management/test_connections.py b/auth0/v3/test/management/test_connections.py index 87a5f50e..841f7e8c 100644 --- a/auth0/v3/test/management/test_connections.py +++ b/auth0/v3/test/management/test_connections.py @@ -5,6 +5,12 @@ class TestConnection(unittest.TestCase): + def test_init_with_optionals(self): + t = Connections(domain='domain', token='jwttoken', telemetry=False, timeout=(10, 2)) + self.assertEqual(t.client.timeout, (10, 2)) + telemetry_header = t.client.base_headers.get('Auth0-Client', None) + self.assertEqual(telemetry_header, None) + @mock.patch('auth0.v3.management.connections.RestClient') def test_all(self, mock_rc): mock_instance = mock_rc.return_value diff --git a/auth0/v3/test/management/test_custom_domains.py b/auth0/v3/test/management/test_custom_domains.py index d80dc825..2a42dbbe 100644 --- a/auth0/v3/test/management/test_custom_domains.py +++ b/auth0/v3/test/management/test_custom_domains.py @@ -5,6 +5,12 @@ class TestCustomDomains(unittest.TestCase): + def test_init_with_optionals(self): + t = CustomDomains(domain='domain', token='jwttoken', telemetry=False, timeout=(10, 2)) + self.assertEqual(t.client.timeout, (10, 2)) + telemetry_header = t.client.base_headers.get('Auth0-Client', None) + self.assertEqual(telemetry_header, None) + @mock.patch('auth0.v3.management.custom_domains.RestClient') def test_get_all(self, mock_rc): mock_instance = mock_rc.return_value diff --git a/auth0/v3/test/management/test_device_credentials.py b/auth0/v3/test/management/test_device_credentials.py index a976f343..c720ba69 100644 --- a/auth0/v3/test/management/test_device_credentials.py +++ b/auth0/v3/test/management/test_device_credentials.py @@ -5,6 +5,12 @@ class TestDeviceCredentials(unittest.TestCase): + def test_init_with_optionals(self): + t = DeviceCredentials(domain='domain', token='jwttoken', telemetry=False, timeout=(10, 2)) + self.assertEqual(t.client.timeout, (10, 2)) + telemetry_header = t.client.base_headers.get('Auth0-Client', None) + self.assertEqual(telemetry_header, None) + @mock.patch('auth0.v3.management.device_credentials.RestClient') def test_get(self, mock_rc): mock_instance = mock_rc.return_value diff --git a/auth0/v3/test/management/test_email_endpoints.py b/auth0/v3/test/management/test_email_endpoints.py index d494c37e..5ebd1903 100644 --- a/auth0/v3/test/management/test_email_endpoints.py +++ b/auth0/v3/test/management/test_email_endpoints.py @@ -5,6 +5,12 @@ class TestClients(unittest.TestCase): + def test_init_with_optionals(self): + t = EmailTemplates(domain='domain', token='jwttoken', telemetry=False, timeout=(10, 2)) + self.assertEqual(t.client.timeout, (10, 2)) + telemetry_header = t.client.base_headers.get('Auth0-Client', None) + self.assertEqual(telemetry_header, None) + @mock.patch('auth0.v3.management.email_templates.RestClient') def test_create(self, mock_rc): mock_instance = mock_rc.return_value diff --git a/auth0/v3/test/management/test_emails.py b/auth0/v3/test/management/test_emails.py index e0a13c5f..e212c673 100644 --- a/auth0/v3/test/management/test_emails.py +++ b/auth0/v3/test/management/test_emails.py @@ -5,6 +5,12 @@ class TestEmails(unittest.TestCase): + def test_init_with_optionals(self): + t = Emails(domain='domain', token='jwttoken', telemetry=False, timeout=(10, 2)) + self.assertEqual(t.client.timeout, (10, 2)) + telemetry_header = t.client.base_headers.get('Auth0-Client', None) + self.assertEqual(telemetry_header, None) + @mock.patch('auth0.v3.management.emails.RestClient') def test_get(self, mock_rc): mock_instance = mock_rc.return_value diff --git a/auth0/v3/test/management/test_grants.py b/auth0/v3/test/management/test_grants.py index 35d06369..a9325c04 100644 --- a/auth0/v3/test/management/test_grants.py +++ b/auth0/v3/test/management/test_grants.py @@ -5,6 +5,12 @@ class TestGrants(unittest.TestCase): + def test_init_with_optionals(self): + t = Grants(domain='domain', token='jwttoken', telemetry=False, timeout=(10, 2)) + self.assertEqual(t.client.timeout, (10, 2)) + telemetry_header = t.client.base_headers.get('Auth0-Client', None) + self.assertEqual(telemetry_header, None) + @mock.patch('auth0.v3.management.grants.RestClient') def test_get_all(self, mock_rc): mock_instance = mock_rc.return_value diff --git a/auth0/v3/test/management/test_guardian.py b/auth0/v3/test/management/test_guardian.py index 002e1736..3c7b2991 100644 --- a/auth0/v3/test/management/test_guardian.py +++ b/auth0/v3/test/management/test_guardian.py @@ -5,6 +5,12 @@ class TestGuardian(unittest.TestCase): + def test_init_with_optionals(self): + t = Guardian(domain='domain', token='jwttoken', telemetry=False, timeout=(10, 2)) + self.assertEqual(t.client.timeout, (10, 2)) + telemetry_header = t.client.base_headers.get('Auth0-Client', None) + self.assertEqual(telemetry_header, None) + @mock.patch('auth0.v3.management.guardian.RestClient') def test_all_factors(self, mock_rc): mock_instance = mock_rc.return_value diff --git a/auth0/v3/test/management/test_jobs.py b/auth0/v3/test/management/test_jobs.py index e2685c4e..ad49ddf4 100644 --- a/auth0/v3/test/management/test_jobs.py +++ b/auth0/v3/test/management/test_jobs.py @@ -5,6 +5,12 @@ class TestJobs(unittest.TestCase): + def test_init_with_optionals(self): + t = Jobs(domain='domain', token='jwttoken', telemetry=False, timeout=(10, 2)) + self.assertEqual(t.client.timeout, (10, 2)) + telemetry_header = t.client.base_headers.get('Auth0-Client', None) + self.assertEqual(telemetry_header, None) + @mock.patch('auth0.v3.management.jobs.RestClient') def test_get(self, mock_rc): mock_instance = mock_rc.return_value diff --git a/auth0/v3/test/management/test_logs.py b/auth0/v3/test/management/test_logs.py index 4fa2da69..30759215 100644 --- a/auth0/v3/test/management/test_logs.py +++ b/auth0/v3/test/management/test_logs.py @@ -5,6 +5,12 @@ class TestLogs(unittest.TestCase): + def test_init_with_optionals(self): + t = Logs(domain='domain', token='jwttoken', telemetry=False, timeout=(10, 2)) + self.assertEqual(t.client.timeout, (10, 2)) + telemetry_header = t.client.base_headers.get('Auth0-Client', None) + self.assertEqual(telemetry_header, None) + @mock.patch('auth0.v3.management.logs.RestClient') def test_search(self, mock_rc): mock_instance = mock_rc.return_value diff --git a/auth0/v3/test/management/test_resource_servers.py b/auth0/v3/test/management/test_resource_servers.py index bd1f57f8..340bfc43 100644 --- a/auth0/v3/test/management/test_resource_servers.py +++ b/auth0/v3/test/management/test_resource_servers.py @@ -5,6 +5,12 @@ class TestResourceServers(unittest.TestCase): + def test_init_with_optionals(self): + t = ResourceServers(domain='domain', token='jwttoken', telemetry=False, timeout=(10, 2)) + self.assertEqual(t.client.timeout, (10, 2)) + telemetry_header = t.client.base_headers.get('Auth0-Client', None) + self.assertEqual(telemetry_header, None) + @mock.patch('auth0.v3.management.resource_servers.RestClient') def test_create(self, mock_rc): mock_instance = mock_rc.return_value diff --git a/auth0/v3/test/management/test_rest.py b/auth0/v3/test/management/test_rest.py index 5a773179..4d3ac5b9 100644 --- a/auth0/v3/test/management/test_rest.py +++ b/auth0/v3/test/management/test_rest.py @@ -2,14 +2,111 @@ import sys import json import base64 -import requests + import mock +import requests + from ...management.rest import RestClient from ...exceptions import Auth0Error class TestRest(unittest.TestCase): + def test_get_can_timeout(self): + rc = RestClient(jwt='a-token', telemetry=False, timeout=0.00001) + + with self.assertRaises(requests.exceptions.Timeout): + rc.get('http://google.com') + + def test_post_can_timeout(self): + rc = RestClient(jwt='a-token', telemetry=False, timeout=0.00001) + + with self.assertRaises(requests.exceptions.Timeout): + rc.post('http://google.com') + + def test_put_can_timeout(self): + rc = RestClient(jwt='a-token', telemetry=False, timeout=0.00001) + + with self.assertRaises(requests.exceptions.Timeout): + rc.put('http://google.com') + + def test_patch_can_timeout(self): + rc = RestClient(jwt='a-token', telemetry=False, timeout=0.00001) + + with self.assertRaises(requests.exceptions.Timeout): + rc.patch('http://google.com') + + def test_delete_can_timeout(self): + rc = RestClient(jwt='a-token', telemetry=False, timeout=0.00001) + + with self.assertRaises(requests.exceptions.Timeout): + rc.delete('http://google.com') + + @mock.patch('requests.get') + def test_get_custom_timeout(self, mock_get): + rc = RestClient(jwt='a-token', telemetry=False, timeout=(10, 2)) + headers = { + 'Authorization': 'Bearer a-token', + 'Content-Type': 'application/json', + } + mock_get.return_value.text = '["a", "b"]' + mock_get.return_value.status_code = 200 + + rc.get('the-url') + mock_get.assert_called_with('the-url', params=None, headers=headers, timeout=(10, 2)) + + @mock.patch('requests.post') + def test_post_custom_timeout(self, mock_post): + rc = RestClient(jwt='a-token', telemetry=False, timeout=(10, 2)) + headers = { + 'Authorization': 'Bearer a-token', + 'Content-Type': 'application/json', + } + mock_post.return_value.text = '["a", "b"]' + mock_post.return_value.status_code = 200 + + rc.post('the-url') + mock_post.assert_called_with('the-url', json=None, headers=headers, timeout=(10, 2)) + + @mock.patch('requests.put') + def test_put_custom_timeout(self, mock_put): + rc = RestClient(jwt='a-token', telemetry=False, timeout=(10, 2)) + headers = { + 'Authorization': 'Bearer a-token', + 'Content-Type': 'application/json', + } + mock_put.return_value.text = '["a", "b"]' + mock_put.return_value.status_code = 200 + + rc.put('the-url') + mock_put.assert_called_with('the-url', json=None, headers=headers, timeout=(10, 2)) + + @mock.patch('requests.patch') + def test_patch_custom_timeout(self, mock_patch): + rc = RestClient(jwt='a-token', telemetry=False, timeout=(10, 2)) + headers = { + 'Authorization': 'Bearer a-token', + 'Content-Type': 'application/json', + } + mock_patch.return_value.text = '["a", "b"]' + mock_patch.return_value.status_code = 200 + + rc.patch('the-url') + mock_patch.assert_called_with('the-url', json=None, headers=headers, timeout=(10, 2)) + + @mock.patch('requests.delete') + def test_delete_custom_timeout(self, mock_delete): + rc = RestClient(jwt='a-token', telemetry=False, timeout=(10, 2)) + headers = { + 'Authorization': 'Bearer a-token', + 'Content-Type': 'application/json', + } + mock_delete.return_value.text = '["a", "b"]' + mock_delete.return_value.status_code = 200 + + rc.delete('the-url') + mock_delete.assert_called_with('the-url', params={}, json=None, headers=headers, timeout=(10, 2)) + @mock.patch('requests.get') def test_get(self, mock_get): rc = RestClient(jwt='a-token', telemetry=False) @@ -22,14 +119,14 @@ def test_get(self, mock_get): mock_get.return_value.status_code = 200 response = rc.get('the-url') - mock_get.assert_called_with('the-url', params=None, headers=headers) + mock_get.assert_called_with('the-url', params=None, headers=headers, timeout=5.0) self.assertEqual(response, ['a', 'b']) response = rc.get(url='the/url', params={'A': 'param', 'B': 'param'}) mock_get.assert_called_with('the/url', params={'A': 'param', 'B': 'param'}, - headers=headers) + headers=headers, timeout=5.0) self.assertEqual(response, ['a', 'b']) mock_get.return_value.text = '' @@ -65,7 +162,7 @@ def test_post(self, mock_post): mock_post.return_value.status_code = 200 response = rc.post('the/url', data=data) mock_post.assert_called_with('the/url', json=data, - headers=headers) + headers=headers, timeout=5.0) self.assertEqual(response, {'a': 'b'}) @@ -213,7 +310,7 @@ def test_file_post_content_type_is_none(self, mock_post): rc.file_post('the-url', data=data, files=files) - mock_post.assert_called_once_with('the-url', data=data, files=files, headers=headers) + mock_post.assert_called_once_with('the-url', data=data, files=files, headers=headers, timeout=5.0) @mock.patch('requests.put') @@ -229,7 +326,7 @@ def test_put(self, mock_put): response = rc.put(url='the-url', data=data) mock_put.assert_called_with('the-url', json=data, - headers=headers) + headers=headers, timeout=5.0) self.assertEqual(response, ['a', 'b']) @@ -262,7 +359,7 @@ def test_patch(self, mock_patch): response = rc.patch(url='the-url', data=data) mock_patch.assert_called_with('the-url', json=data, - headers=headers) + headers=headers, timeout=5.0) self.assertEqual(response, ['a', 'b']) @@ -294,7 +391,7 @@ def test_delete(self, mock_delete): mock_delete.return_value.status_code = 200 response = rc.delete(url='the-url/ID') - mock_delete.assert_called_with('the-url/ID', headers=headers, params={}, json=None) + mock_delete.assert_called_with('the-url/ID', headers=headers, params={}, json=None, timeout=5.0) self.assertEqual(response, ['a', 'b']) @@ -313,7 +410,7 @@ def test_delete_with_body_and_params(self, mock_delete): params={'A': 'param', 'B': 'param'} response = rc.delete(url='the-url/ID', params=params, data=data) - mock_delete.assert_called_with('the-url/ID', headers=headers, params=params, json=data) + mock_delete.assert_called_with('the-url/ID', headers=headers, params=params, json=data, timeout=5.0) self.assertEqual(response, ['a', 'b']) diff --git a/auth0/v3/test/management/test_roles.py b/auth0/v3/test/management/test_roles.py index 76ccec1c..2742a08c 100644 --- a/auth0/v3/test/management/test_roles.py +++ b/auth0/v3/test/management/test_roles.py @@ -5,6 +5,12 @@ class TestRoles(unittest.TestCase): + def test_init_with_optionals(self): + t = Roles(domain='domain', token='jwttoken', telemetry=False, timeout=(10, 2)) + self.assertEqual(t.client.timeout, (10, 2)) + telemetry_header = t.client.base_headers.get('Auth0-Client', None) + self.assertEqual(telemetry_header, None) + @mock.patch('auth0.v3.management.roles.RestClient') def test_list(self, mock_rc): mock_instance = mock_rc.return_value diff --git a/auth0/v3/test/management/test_rules.py b/auth0/v3/test/management/test_rules.py index d57da953..2db78137 100644 --- a/auth0/v3/test/management/test_rules.py +++ b/auth0/v3/test/management/test_rules.py @@ -5,6 +5,12 @@ class TestRules(unittest.TestCase): + def test_init_with_optionals(self): + t = Rules(domain='domain', token='jwttoken', telemetry=False, timeout=(10, 2)) + self.assertEqual(t.client.timeout, (10, 2)) + telemetry_header = t.client.base_headers.get('Auth0-Client', None) + self.assertEqual(telemetry_header, None) + @mock.patch('auth0.v3.management.rules.RestClient') def test_all(self, mock_rc): mock_instance = mock_rc.return_value diff --git a/auth0/v3/test/management/test_rules_configs.py b/auth0/v3/test/management/test_rules_configs.py index d3c41e5b..9e6babfd 100644 --- a/auth0/v3/test/management/test_rules_configs.py +++ b/auth0/v3/test/management/test_rules_configs.py @@ -3,7 +3,13 @@ from ...management.rules_configs import RulesConfigs -class TestRules(unittest.TestCase): +class TestRulesConfigs(unittest.TestCase): + + def test_init_with_optionals(self): + t = RulesConfigs(domain='domain', token='jwttoken', telemetry=False, timeout=(10, 2)) + self.assertEqual(t.client.timeout, (10, 2)) + telemetry_header = t.client.base_headers.get('Auth0-Client', None) + self.assertEqual(telemetry_header, None) @mock.patch('auth0.v3.management.rules_configs.RestClient') def test_all(self, mock_rc): diff --git a/auth0/v3/test/management/test_stats.py b/auth0/v3/test/management/test_stats.py index d7db82ee..91f94613 100644 --- a/auth0/v3/test/management/test_stats.py +++ b/auth0/v3/test/management/test_stats.py @@ -3,7 +3,13 @@ from ...management.stats import Stats -class TestTickets(unittest.TestCase): +class TestStats(unittest.TestCase): + + def test_init_with_optionals(self): + t = Stats(domain='domain', token='jwttoken', telemetry=False, timeout=(10, 2)) + self.assertEqual(t.client.timeout, (10, 2)) + telemetry_header = t.client.base_headers.get('Auth0-Client', None) + self.assertEqual(telemetry_header, None) @mock.patch('auth0.v3.management.stats.RestClient') def test_active_users(self, mock_rc): diff --git a/auth0/v3/test/management/test_tenants.py b/auth0/v3/test/management/test_tenants.py index 37ac552a..0838c056 100644 --- a/auth0/v3/test/management/test_tenants.py +++ b/auth0/v3/test/management/test_tenants.py @@ -5,6 +5,12 @@ class TestTenants(unittest.TestCase): + def test_init_with_optionals(self): + t = Tenants(domain='domain', token='jwttoken', telemetry=False, timeout=(10, 2)) + self.assertEqual(t.client.timeout, (10, 2)) + telemetry_header = t.client.base_headers.get('Auth0-Client', None) + self.assertEqual(telemetry_header, None) + @mock.patch('auth0.v3.management.tenants.RestClient') def test_get(self, mock_rc): mock_instance = mock_rc.return_value diff --git a/auth0/v3/test/management/test_tickets.py b/auth0/v3/test/management/test_tickets.py index eb0b75f9..3bbd2e5d 100644 --- a/auth0/v3/test/management/test_tickets.py +++ b/auth0/v3/test/management/test_tickets.py @@ -5,6 +5,12 @@ class TestTickets(unittest.TestCase): + def test_init_with_optionals(self): + t = Tickets(domain='domain', token='jwttoken', telemetry=False, timeout=(10, 2)) + self.assertEqual(t.client.timeout, (10, 2)) + telemetry_header = t.client.base_headers.get('Auth0-Client', None) + self.assertEqual(telemetry_header, None) + @mock.patch('auth0.v3.management.tickets.RestClient') def test_email(self, mock_rc): mock_instance = mock_rc.return_value diff --git a/auth0/v3/test/management/test_user_blocks.py b/auth0/v3/test/management/test_user_blocks.py index ec096d5a..c240c046 100644 --- a/auth0/v3/test/management/test_user_blocks.py +++ b/auth0/v3/test/management/test_user_blocks.py @@ -5,6 +5,12 @@ class TestUserBlocks(unittest.TestCase): + def test_init_with_optionals(self): + t = UserBlocks(domain='domain', token='jwttoken', telemetry=False, timeout=(10, 2)) + self.assertEqual(t.client.timeout, (10, 2)) + telemetry_header = t.client.base_headers.get('Auth0-Client', None) + self.assertEqual(telemetry_header, None) + @mock.patch('auth0.v3.management.user_blocks.RestClient') def test_get_by_identifier(self, mock_rc): mock_instance = mock_rc.return_value diff --git a/auth0/v3/test/management/test_users.py b/auth0/v3/test/management/test_users.py index b3908c1c..fc9bc104 100644 --- a/auth0/v3/test/management/test_users.py +++ b/auth0/v3/test/management/test_users.py @@ -5,6 +5,12 @@ class TestUsers(unittest.TestCase): + def test_init_with_optionals(self): + t = Users(domain='domain', token='jwttoken', telemetry=False, timeout=(10, 2)) + self.assertEqual(t.client.timeout, (10, 2)) + telemetry_header = t.client.base_headers.get('Auth0-Client', None) + self.assertEqual(telemetry_header, None) + @mock.patch('auth0.v3.management.users.RestClient') def test_list(self, mock_rc): mock_instance = mock_rc.return_value diff --git a/auth0/v3/test/management/test_users_by_email.py b/auth0/v3/test/management/test_users_by_email.py index 2c6e9af3..3d947f0f 100644 --- a/auth0/v3/test/management/test_users_by_email.py +++ b/auth0/v3/test/management/test_users_by_email.py @@ -5,6 +5,12 @@ class TestUsersByEmail(unittest.TestCase): + def test_init_with_optionals(self): + t = UsersByEmail(domain='domain', token='jwttoken', telemetry=False, timeout=(10, 2)) + self.assertEqual(t.client.timeout, (10, 2)) + telemetry_header = t.client.base_headers.get('Auth0-Client', None) + self.assertEqual(telemetry_header, None) + @mock.patch('auth0.v3.management.users_by_email.RestClient') def test_search_users_by_email(self, mock_rc): mock_instance = mock_rc.return_value