def testGetAccesstoken_LoggedIn(self): expiry = calendar.timegm(VALID_EXPIRY.timetuple()) subprocess2.check_call_out.return_value = (json.dumps({ 'token': 'token', 'expiry': expiry }), '') self.assertEqual(auth.AccessToken('token', VALID_EXPIRY), auth.Authenticator().get_access_token()) subprocess2.check_call_out.assert_called_with([ 'luci-auth', 'token', '-scopes', auth.OAUTH_SCOPE_EMAIL, '-json-output', '-' ], stdout=subprocess2.PIPE, stderr=subprocess2.PIPE)
def testAuthorize(self): http = mock.Mock() http_request = http.request http_request.__name__ = '__name__' authenticator = auth.Authenticator() authenticator._access_token = auth.AccessToken('token', None) authorized = authenticator.authorize(http) authorized.request('https://example.com', method='POST', body='body', headers={'header': 'value'}) http_request.assert_called_once_with( 'https://example.com', 'POST', 'body', { 'header': 'value', 'Authorization': 'Bearer token' }, mock.ANY, mock.ANY)
def testGetAccessToken_CachedToken(self): authenticator = auth.Authenticator() authenticator._access_token = auth.AccessToken('token', None) self.assertEqual(auth.AccessToken('token', None), authenticator.get_access_token()) subprocess2.check_call_out.assert_not_called()
def testNeedsRefresh_Valid(self): self.assertFalse( auth.AccessToken('token', VALID_EXPIRY).needs_refresh())
def testNeedsRefresh_Expired(self): expired = NOW + datetime.timedelta(seconds=30) self.assertTrue(auth.AccessToken('token', expired).needs_refresh())
def testNeedsRefresh_NoExpiry(self): self.assertFalse(auth.AccessToken('token', None).needs_refresh())