MCPcopy Index your code
hub / github.com/PyGithub/PyGithub / testAppUserAuthentication

Method testAppUserAuthentication

tests/Authentication.py:224–268  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

222 )
223
224 def testAppUserAuthentication(self):
225 client_id = "removed client id"
226 client_secret = "removed client secret"
227 refresh_token = "removed refresh token"
228
229 g = github.Github()
230 app = g.get_oauth_application(client_id, client_secret)
231 with mock.patch("github.AccessToken.datetime") as dt:
232 dt.now = mock.Mock(return_value=datetime(2023, 6, 7, 12, 0, 0, 123, tzinfo=timezone.utc))
233 token = app.refresh_access_token(refresh_token)
234 self.assertEqual(token.token, "fresh access token")
235 self.assertEqual(token.type, "bearer")
236 self.assertEqual(token.scope, "")
237 self.assertEqual(token.expires_in, 28800)
238 self.assertEqual(
239 token.expires_at,
240 datetime(2023, 6, 7, 20, 0, 0, 123, tzinfo=timezone.utc),
241 )
242 self.assertEqual(token.refresh_token, "fresh refresh token")
243 self.assertEqual(token.refresh_expires_in, 15811200)
244 self.assertEqual(
245 token.refresh_expires_at,
246 datetime(2023, 12, 7, 12, 0, 0, 123, tzinfo=timezone.utc),
247 )
248
249 auth = app.get_app_user_auth(token)
250 with mock.patch("github.Auth.datetime") as dt:
251 dt.now = mock.Mock(return_value=datetime(2023, 6, 7, 20, 0, 0, 123, tzinfo=timezone.utc))
252 self.assertEqual(auth._is_expired, False)
253 self.assertEqual(auth.token, "fresh access token")
254 self.assertEqual(auth.token_type, "bearer")
255 self.assertEqual(auth.refresh_token, "fresh refresh token")
256
257 # expire auth token
258 with mock.patch("github.Auth.datetime") as dt:
259 dt.now = mock.Mock(return_value=datetime(2023, 6, 7, 20, 0, 1, 123, tzinfo=timezone.utc))
260 self.assertEqual(auth._is_expired, True)
261 self.assertEqual(auth.token, "another access token")
262 self.assertEqual(auth._is_expired, False)
263 self.assertEqual(auth.token_type, "bearer")
264 self.assertEqual(auth.refresh_token, "another refresh token")
265
266 g = github.Github(auth=auth)
267 user = g.get_user()
268 self.assertEqual(user.login, "EnricoMi")
269
270 def testNetrcAuth(self):
271 with NamedTemporaryFile("wt", delete=False) as tmp:

Callers

nothing calls this directly

Calls 5

get_oauth_applicationMethod · 0.95
get_userMethod · 0.95
patchMethod · 0.80
refresh_access_tokenMethod · 0.80
get_app_user_authMethod · 0.80

Tested by

no test coverage detected