@@ -143,6 +143,62 @@ def test_client_authentication_url_scopes_none(api_client, api_url):
143143 assert urls_equal (expected , actual )
144144
145145
146+ def test_client_authentication_url_optional_params (api_client , api_url ):
147+ expected = (
148+ URLObject (api_url )
149+ .with_path ("/oauth/authorize" )
150+ .set_query_params (
151+ [
152+ ("login_hint" , "" ),
153+ ("state" , "" ),
154+ ("redirect_uri" , "/redirect" ),
155+ ("response_type" , "code" ),
156+ ("client_id" , "None" ),
157+ ("scopes" , "email" ),
158+ ("provider" , "gmail" ),
159+ ("redirect_on_error" , "false" ),
160+ ]
161+ )
162+ )
163+ actual = URLObject (
164+ api_client .authentication_url (
165+ "/redirect" , scopes = "email" , provider = "gmail" , redirect_on_error = False
166+ )
167+ )
168+ assert urls_equal (expected , actual )
169+
170+
171+ def test_client_authentication_url_invalid_param_values (api_client , api_url ):
172+ expected = (
173+ URLObject (api_url )
174+ .with_path ("/oauth/authorize" )
175+ .set_query_params (
176+ [
177+ ("login_hint" , "" ),
178+ ("state" , "" ),
179+ ("redirect_uri" , "/redirect" ),
180+ ("response_type" , "code" ),
181+ ("client_id" , "None" ),
182+ ("scopes" , "email" ),
183+ ]
184+ )
185+ )
186+ actual = URLObject (
187+ api_client .authentication_url ("/redirect" , scopes = "email" , provider = "Google" )
188+ )
189+ assert urls_equal (expected , actual )
190+
191+ expected2 = expected .set_query_param ("provider" , "gmail" )
192+
193+ actual2 = URLObject (
194+ api_client .authentication_url (
195+ "/redirect" , scopes = "email" , provider = "gmail" , redirect_on_error = "true"
196+ )
197+ )
198+
199+ assert urls_equal (expected2 , actual2 )
200+
201+
146202def test_client_token_for_code (mocked_responses , api_client , api_url ):
147203 endpoint = re .compile (api_url + "/oauth/token" )
148204 response_body = json .dumps ({"access_token" : "hooray" })
0 commit comments