Skip to content

Commit 4bcd15e

Browse files
author
Orest Bolohan
committed
Tweak the computation of seconds from a datetime.timedelta object, so
that we consider only the whole seconds.
1 parent e0c51b9 commit 4bcd15e

File tree

3 files changed

+17
-15
lines changed

3 files changed

+17
-15
lines changed

oauth2client/client.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -634,9 +634,9 @@ def _expires_in(self):
634634
now = datetime.datetime.utcnow()
635635
if self.token_expiry > now:
636636
time_delta = self.token_expiry - now
637-
return int(round(time_delta.days * 86400.0 +
638-
time_delta.seconds +
639-
time_delta.microseconds * 0.000001))
637+
# TODO(orestica): return time_delta.total_seconds()
638+
# once dropping support for Python 2.6
639+
return time_delta.days * 86400 + time_delta.seconds
640640
else:
641641
return 0
642642

tests/test_oauth2client.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -583,31 +583,32 @@ def test_no_unicode_in_request_params(self):
583583
self.assertEqual('foobar', instance.token_response)
584584

585585
def test_get_access_token(self):
586-
token_response_first = {'access_token': 'first_token', 'expires_in': 1}
587-
token_response_second = {'access_token': 'second_token', 'expires_in': 1}
586+
S = 2 # number of seconds in which the token expires
587+
token_response_first = {'access_token': 'first_token', 'expires_in': S}
588+
token_response_second = {'access_token': 'second_token', 'expires_in': S}
588589
http = HttpMockSequence([
589590
({'status': '200'}, simplejson.dumps(token_response_first)),
590591
({'status': '200'}, simplejson.dumps(token_response_second)),
591592
])
592593

593594
token = self.credentials.get_access_token(http=http)
594595
self.assertEqual('first_token', token.access_token)
595-
self.assertEqual(1, token.expires_in)
596+
self.assertEqual(S - 1, token.expires_in)
596597
self.assertFalse(self.credentials.access_token_expired)
597598
self.assertEqual(token_response_first, self.credentials.token_response)
598599

599600
token = self.credentials.get_access_token(http=http)
600601
self.assertEqual('first_token', token.access_token)
601-
self.assertEqual(1, token.expires_in)
602+
self.assertEqual(S - 1, token.expires_in)
602603
self.assertFalse(self.credentials.access_token_expired)
603604
self.assertEqual(token_response_first, self.credentials.token_response)
604605

605-
time.sleep(1)
606+
time.sleep(S)
606607
self.assertTrue(self.credentials.access_token_expired)
607608

608609
token = self.credentials.get_access_token(http=http)
609610
self.assertEqual('second_token', token.access_token)
610-
self.assertEqual(1, token.expires_in)
611+
self.assertEqual(S - 1, token.expires_in)
611612
self.assertFalse(self.credentials.access_token_expired)
612613
self.assertEqual(token_response_second, self.credentials.token_response)
613614

tests/test_service_account.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -94,30 +94,31 @@ def test_create_scoped(self):
9494
self.assertEqual('dummy_scope', new_credentials._scopes)
9595

9696
def test_access_token(self):
97-
token_response_first = {'access_token': 'first_token', 'expires_in': 1}
98-
token_response_second = {'access_token': 'second_token', 'expires_in': 1}
97+
S = 2 # number of seconds in which the token expires
98+
token_response_first = {'access_token': 'first_token', 'expires_in': S}
99+
token_response_second = {'access_token': 'second_token', 'expires_in': S}
99100
http = HttpMockSequence([
100101
({'status': '200'}, simplejson.dumps(token_response_first)),
101102
({'status': '200'}, simplejson.dumps(token_response_second)),
102103
])
103104

104105
token = self.credentials.get_access_token(http=http)
105106
self.assertEqual('first_token', token.access_token)
106-
self.assertEqual(1, token.expires_in)
107+
self.assertEqual(S - 1, token.expires_in)
107108
self.assertFalse(self.credentials.access_token_expired)
108109
self.assertEqual(token_response_first, self.credentials.token_response)
109110

110111
token = self.credentials.get_access_token(http=http)
111112
self.assertEqual('first_token', token.access_token)
112-
self.assertEqual(1, token.expires_in)
113+
self.assertEqual(S - 1, token.expires_in)
113114
self.assertFalse(self.credentials.access_token_expired)
114115
self.assertEqual(token_response_first, self.credentials.token_response)
115116

116-
time.sleep(1)
117+
time.sleep(S)
117118
self.assertTrue(self.credentials.access_token_expired)
118119

119120
token = self.credentials.get_access_token(http=http)
120121
self.assertEqual('second_token', token.access_token)
121-
self.assertEqual(1, token.expires_in)
122+
self.assertEqual(S - 1, token.expires_in)
122123
self.assertFalse(self.credentials.access_token_expired)
123124
self.assertEqual(token_response_second, self.credentials.token_response)

0 commit comments

Comments
 (0)