Skip to content

Commit 7e5ca05

Browse files
authored
SWI-12283 Allow Setting Custom Token URL (#309)
* SWI-12283 Allow Setting Custom Token URL * update unit tests to not hit live oauth url
1 parent ca0be0f commit 7e5ca05

14 files changed

Lines changed: 24 additions & 26 deletions

‎bandwidth/configuration.py‎

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,7 @@ class Configuration:
152152
:param username: Username for HTTP basic authentication.
153153
:param password: Password for HTTP basic authentication.
154154
:param access_token: Access token.
155+
:param access_token_url: URL to get access token for OAuth2 authentication.
155156
:param client_id: Client ID for OAuth2 authentication.
156157
:param client_secret: Client Secret for OAuth2 authentication.
157158
:param server_index: Index to servers configuration.
@@ -201,6 +202,7 @@ def __init__(
201202
username: Optional[str]=None,
202203
password: Optional[str]=None,
203204
access_token: Optional[str]=None,
205+
access_token_url: Optional[str]=None,
204206
client_id: Optional[str]=None,
205207
client_secret: Optional[str]=None,
206208
server_index: Optional[int]=None,
@@ -258,6 +260,9 @@ def __init__(
258260
self.access_token = access_token
259261
"""Access token
260262
"""
263+
self.access_token_url = 'https://api.bandwidth.com/api/v1/oauth2/token' if access_token_url is None else access_token_url
264+
"""URL to get access token for OAuth2 authentication
265+
"""
261266
self.client_id = client_id
262267
"""Client ID for OAuth2 authentication
263268
"""
@@ -540,7 +545,7 @@ def get_access_token(self) -> str:
540545
auth_header = f"Basic {_encoded_string}"
541546
resp = urllib3.request(
542547
'POST',
543-
'https://api.bandwidth.com/api/v1/oauth2/token',
548+
self.access_token_url,
544549
headers={
545550
'Authorization': auth_header,
546551
'Content-Type': 'application/x-www-form-urlencoded',

‎custom_templates/configuration.mustache‎

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,7 @@ class Configuration:
169169
:param username: Username for HTTP basic authentication.
170170
:param password: Password for HTTP basic authentication.
171171
:param access_token: Access token.
172+
:param access_token_url: URL to get access token for OAuth2 authentication.
172173
:param client_id: Client ID for OAuth2 authentication.
173174
:param client_secret: Client Secret for OAuth2 authentication.
174175
{{#hasHttpSignatureMethods}}
@@ -288,6 +289,7 @@ conf = {{{packageName}}}.Configuration(
288289
username: Optional[str]=None,
289290
password: Optional[str]=None,
290291
access_token: Optional[str]=None,
292+
access_token_url: Optional[str]=None,
291293
client_id: Optional[str]=None,
292294
client_secret: Optional[str]=None,
293295
{{#hasHttpSignatureMethods}}
@@ -348,6 +350,9 @@ conf = {{{packageName}}}.Configuration(
348350
self.access_token = access_token
349351
"""Access token
350352
"""
353+
self.access_token_url = {{#authMethods}}{{#isOAuth}}'{{tokenUrl}}'{{/isOAuth}}{{/authMethods}} if access_token_url is None else access_token_url
354+
"""URL to get access token for OAuth2 authentication
355+
"""
351356
self.client_id = client_id
352357
"""Client ID for OAuth2 authentication
353358
"""
@@ -651,7 +656,7 @@ conf = {{{packageName}}}.Configuration(
651656
auth_header = f"Basic {_encoded_string}"
652657
resp = urllib3.request(
653658
'POST',
654-
{{#authMethods}}{{#isOAuth}}'{{tokenUrl}}',{{/isOAuth}}{{/authMethods}}
659+
self.access_token_url,
655660
headers={
656661
'Authorization': auth_header,
657662
'Content-Type': 'application/x-www-form-urlencoded',

‎test/unit/api/test_calls_api.py‎

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,7 @@ class TestCallsApi(unittest.TestCase):
3838
@classmethod
3939
def setUpClass(cls) -> None:
4040
configuration = Configuration(
41-
client_id=BW_CLIENT_ID,
42-
client_secret=BW_CLIENT_SECRET,
41+
access_token='abcd1234',
4342
host='http://127.0.0.1:4010',
4443
ignore_operation_servers=True
4544
)

‎test/unit/api/test_conferences_api.py‎

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,7 @@ class TestConferencesApi(unittest.TestCase):
3535
@classmethod
3636
def setUpClass(cls) -> None:
3737
configuration = Configuration(
38-
client_id=BW_CLIENT_ID,
39-
client_secret=BW_CLIENT_SECRET,
38+
access_token='abcd1234',
4039
host='http://127.0.0.1:4010',
4140
ignore_operation_servers=True
4241
)

‎test/unit/api/test_endpoints_api.py‎

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,7 @@ class TestEndpointsApi(unittest.TestCase):
4040
@classmethod
4141
def setUpClass(cls) -> None:
4242
configuration = Configuration(
43-
client_id=BW_CLIENT_ID,
44-
client_secret=BW_CLIENT_SECRET,
43+
access_token='abcd1234',
4544
host='http://127.0.0.1:4010',
4645
ignore_operation_servers=True
4746
)

‎test/unit/api/test_media_api.py‎

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,7 @@ class TestMediaApi(unittest.TestCase):
2727

2828
def setUp(self) -> None:
2929
configuration = Configuration(
30-
username=BW_USERNAME,
31-
password=BW_PASSWORD,
30+
access_token='abcd1234',
3231
host='http://127.0.0.1:4010',
3332
ignore_operation_servers=True
3433
)

‎test/unit/api/test_messages_api.py‎

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,7 @@ class TestMessagesApi(unittest.TestCase):
3636

3737
def setUp(self) -> None:
3838
configuration = Configuration(
39-
username=BW_USERNAME,
40-
password=BW_PASSWORD,
39+
access_token='abcd1234',
4140
host='http://127.0.0.1:4010',
4241
ignore_operation_servers=True
4342
)

‎test/unit/api/test_mfa_api.py‎

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,7 @@ class TestMFAApi(unittest.TestCase):
3131

3232
def setUp(self) -> None:
3333
configuration = Configuration(
34-
username=BW_USERNAME,
35-
password=BW_PASSWORD,
34+
access_token='abcd1234',
3635
host='http://127.0.0.1:4010',
3736
ignore_operation_servers=True
3837
)

‎test/unit/api/test_multi_channel_api.py‎

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,7 @@ class TestMultiChannelApi(unittest.TestCase):
3535

3636
def setUp(self) -> None:
3737
configuration = Configuration(
38-
username=BW_USERNAME,
39-
password=BW_PASSWORD,
38+
access_token='abcd1234',
4039
host='http://127.0.0.1:4010',
4140
ignore_operation_servers=True
4241
)

‎test/unit/api/test_phone_number_lookup_api.py‎

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,7 @@ class TestPhoneNumberLookupApi(unittest.TestCase):
4141
@classmethod
4242
def setUpClass(cls) -> None:
4343
configuration = Configuration(
44-
client_id=BW_CLIENT_ID,
45-
client_secret=BW_CLIENT_SECRET,
44+
access_token='abcd1234',
4645
host='http://127.0.0.1:4010',
4746
ignore_operation_servers=True
4847
)

0 commit comments

Comments
 (0)