Skip to content

Commit 45ce9e1

Browse files
fix(auth-utility): handle runtime exception in base64 encoding utility (#56)
This commit handles the exception when the provided props are an array of None items. When any item is None, the `delimiter.join` throws an exception because it expects the str instances.
1 parent 1a1cc33 commit 45ce9e1

3 files changed

Lines changed: 11 additions & 2 deletions

File tree

apimatic_core/utilities/auth_helper.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ class AuthHelper:
77

88
@staticmethod
99
def get_base64_encoded_value(*props, delimiter=':'):
10-
if props:
10+
if props.__len__() > 0 and not any(prop is None for prop in props):
1111
joined = delimiter.join(props)
1212
encoded = base64.b64encode(str.encode(joined)).decode('iso-8859-1')
1313
return encoded

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
setup(
1414
name='apimatic-core',
15-
version='0.2.8',
15+
version='0.2.9',
1616
description='A library that contains core logic and utilities for '
1717
'consuming REST APIs using Python SDKs generated by APIMatic.',
1818
long_description=long_description,

tests/apimatic_core/utility_tests/test_auth_helper.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,15 @@ def test_base64_encoded_none_value(self):
88
expected_base64_encoded_value = None
99
assert actual_base64_encoded_value == expected_base64_encoded_value
1010

11+
def test_base64_encoded_provided_none_values(self):
12+
actual_base64_encoded_value = AuthHelper.get_base64_encoded_value(None, None)
13+
expected_base64_encoded_value = None
14+
assert actual_base64_encoded_value == expected_base64_encoded_value
15+
16+
actual_base64_encoded_value = AuthHelper.get_base64_encoded_value('test_username', None)
17+
expected_base64_encoded_value = None
18+
assert actual_base64_encoded_value == expected_base64_encoded_value
19+
1120
def test_base64_encoded_value(self):
1221
actual_base64_encoded_value = AuthHelper.get_base64_encoded_value('test_username', 'test_password')
1322
expected_base64_encoded_value = 'dGVzdF91c2VybmFtZTp0ZXN0X3Bhc3N3b3Jk'

0 commit comments

Comments
 (0)