Skip to content

Commit da0c95a

Browse files
Merge pull request #217 from HubSpot/feature/add_missing_param_to_get_auth_url
add missing query param
2 parents 97e7343 + 2f7ca75 commit da0c95a

File tree

2 files changed

+46
-21
lines changed

2 files changed

+46
-21
lines changed

Diff for: hubspot/utils/oauth.py

+11-9
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,21 @@
66
def get_auth_url(
77
client_id: str,
88
redirect_uri: str,
9-
scopes: tuple = None,
10-
optional_scopes: tuple = None,
11-
):
9+
scope: tuple = None,
10+
optional_scope: tuple = None,
11+
state: str = None
12+
) -> str:
1213
query_params = {
1314
"client_id": client_id,
14-
"redirect_uri": redirect_uri,
15+
"redirect_uri": redirect_uri
1516
}
1617

17-
if scopes:
18-
query_params["scope"] = ' '.join(scopes)
19-
20-
if optional_scopes:
21-
query_params["optional_scope"] = ' '.join(optional_scopes)
18+
if scope:
19+
query_params["scope"] = " ".join(scope)
20+
if optional_scope:
21+
query_params["optional_scope"] = " ".join(optional_scope)
22+
if state:
23+
query_params.setdefault("state", state)
2224

2325
params = urllib.parse.urlencode(
2426
query_params,

Diff for: tests/spec/utils/test_get_auth_url.py

+35-12
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,11 @@
1313

1414
def test_get_auth_url__empty_scope():
1515
params = {
16-
'client_id': DATA["client_id"],
17-
'redirect_uri': DATA["redirect_uri"],
16+
"client_id": DATA["client_id"],
17+
"redirect_uri": DATA["redirect_uri"],
18+
1819
}
19-
expected_url = f"{AUTHORIZE_URL}?{urllib.parse.urlencode(params, safe='',quote_via=urllib.parse.quote,)}"
20+
expected_url = f"{AUTHORIZE_URL}?{urllib.parse.urlencode(params, safe='',quote_via=urllib.parse.quote)}"
2021

2122
result = get_auth_url(
2223
DATA["client_id"],
@@ -28,11 +29,11 @@ def test_get_auth_url__empty_scope():
2829

2930
def test_get_auth_url__scope():
3031
params = {
31-
'client_id': DATA["client_id"],
32-
'redirect_uri': DATA["redirect_uri"],
33-
'scope': ' '.join(DATA["scope"]),
32+
"client_id": DATA["client_id"],
33+
"redirect_uri": DATA["redirect_uri"],
34+
"scope": " ".join(DATA["scope"]),
3435
}
35-
expected_url = f"{AUTHORIZE_URL}?{urllib.parse.urlencode(params, safe='', quote_via=urllib.parse.quote,)}"
36+
expected_url = f"{AUTHORIZE_URL}?{urllib.parse.urlencode(params, safe='', quote_via=urllib.parse.quote)}"
3637

3738
result = get_auth_url(
3839
DATA["client_id"],
@@ -45,16 +46,38 @@ def test_get_auth_url__scope():
4546

4647
def test_get_auth_url__optional_scope():
4748
params = {
48-
'client_id': DATA["client_id"],
49-
'redirect_uri': DATA["redirect_uri"],
50-
'optional_scope': ' '.join(DATA["optional_scope"]),
49+
"client_id": DATA["client_id"],
50+
"redirect_uri": DATA["redirect_uri"],
51+
"optional_scope": " ".join(DATA["optional_scope"]),
52+
}
53+
expected_url = f"{AUTHORIZE_URL}?{urllib.parse.urlencode(params, safe='', quote_via=urllib.parse.quote)}"
54+
55+
result = get_auth_url(
56+
DATA["client_id"],
57+
DATA["redirect_uri"],
58+
optional_scope=DATA["optional_scope"]
59+
)
60+
61+
assert result == expected_url
62+
63+
64+
def test_get_auth_url__state():
65+
66+
params = {
67+
"client_id": DATA["client_id"],
68+
"redirect_uri": DATA["redirect_uri"],
69+
"scope": " ".join(DATA["scope"]),
70+
"optional_scope": " ".join(DATA["optional_scope"]),
71+
"state": "test_state"
5172
}
52-
expected_url = f"{AUTHORIZE_URL}?{urllib.parse.urlencode(params, safe='', quote_via=urllib.parse.quote, )}"
73+
expected_url = f"{AUTHORIZE_URL}?{urllib.parse.urlencode(params, safe='', quote_via=urllib.parse.quote)}"
5374

5475
result = get_auth_url(
5576
DATA["client_id"],
5677
DATA["redirect_uri"],
57-
optional_scopes=DATA["optional_scope"]
78+
DATA["scope"],
79+
DATA["optional_scope"],
80+
state=params["state"]
5881
)
5982

6083
assert result == expected_url

0 commit comments

Comments
 (0)