From 903a6183669f375c94ed97eaacb7255bc21ab275 Mon Sep 17 00:00:00 2001 From: Melanie Wang Date: Tue, 16 Mar 2021 11:34:33 -0400 Subject: [PATCH] Update method to use grant_options --- shopify/session.py | 5 ++++- test/session_test.py | 10 ++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/shopify/session.py b/shopify/session.py index 7e1c13ac..622d2c79 100644 --- a/shopify/session.py +++ b/shopify/session.py @@ -51,10 +51,13 @@ def __init__(self, shop_url, version=None, token=None): self.version = ApiVersion.coerce_to_version(version) return - def create_permission_url(self, scope, redirect_uri, state=None): + def create_permission_url(self, scope, redirect_uri, state=None, grant_options=None): query_params = dict(client_id=self.api_key, scope=",".join(scope), redirect_uri=redirect_uri) if state: query_params["state"] = state + if grant_options: + query_params["grant_options[]"] = grant_options + print(urllib.parse.urlencode(query_params)) return "https://%s/admin/oauth/authorize?%s" % (self.url, urllib.parse.urlencode(query_params)) def request_token(self, params): diff --git a/test/session_test.py b/test/session_test.py index 60fb6678..f3e1b56f 100644 --- a/test/session_test.py +++ b/test/session_test.py @@ -135,6 +135,16 @@ def test_create_permission_url_returns_correct_url_with_single_scope_and_redirec "https://localhost.myshopify.com/admin/oauth/authorize?client_id=My_test_key&redirect_uri=my_redirect_uri.com&scope=write_customers&state=mystate", self.normalize_url(permission_url), ) + + def test_create_permission_url_returns_correct_url_with_single_scope_and_redirect_uri_and_grant_options(self): + shopify.Session.setup(api_key="My_test_key", secret="My test secret") + session = shopify.Session("http://localhost.myshopify.com", "unstable") + scope = ["write_customers"] + permission_url = session.create_permission_url(scope, "my_redirect_uri.com", grant_options="per-user") + self.assertEqual( + "https://localhost.myshopify.com/admin/oauth/authorize?client_id=My_test_key&grant_options[]=per-user&redirect_uri=my_redirect_uri.com&scope=write_customers", + self.normalize_url(permission_url), + ) def test_raise_exception_if_code_invalid_in_request_token(self): shopify.Session.setup(api_key="My test key", secret="My test secret")