def test_oauth2_start_flow_default(self):
"""
Starts a default GlobusNativeAppFlowManager,
Confirms flow is initialized as expected, and can be used.
"""
# starting with no flow
self.assertIsNone(self.nac.current_oauth2_flow_manager)
# confirms flow initialized with default flow values
flow = self.nac.oauth2_start_flow()
self.assertIsInstance(flow, GlobusNativeAppFlowManager)
self.assertEqual(flow.redirect_uri,
self.nac.base_url + "v2/web/auth-code")
self.assertEqual(flow.requested_scopes,
" ".join(DEFAULT_REQUESTED_SCOPES))
self.assertEqual(flow.state, "_default")
self.assertFalse(flow.refresh_tokens)
# confirm client can get url via flow
url_res = self.nac.oauth2_get_authorize_url()
expected_vals = [self.nac.base_url + "v2/oauth2/authorize?",
"client_id=" + self.nac.client_id,
"redirect_uri=" +
quote_plus(self.nac.base_url + "v2/web/auth-code"),
"scope=" + quote_plus(
" ".join(DEFAULT_REQUESTED_SCOPES)),
"state=" + "_default",
"code_challenge=" + quote_plus(flow.challenge),
"access_type=" + "online"]
for val in expected_vals:
self.assertIn(val, url_res)
# confirm client can try exchanging code for tokens via flow
with self.assertRaises(AuthAPIError) as apiErr:
self.nac.oauth2_exchange_code_for_tokens("invalid_code")
self.assertEqual(apiErr.exception.http_status, 401)
self.assertEqual(apiErr.exception.code, "Error")
test_native_client_flow.py 文件源码
python
阅读 26
收藏 0
点赞 0
评论 0
评论列表
文章目录