Skip to content

Commit e04cd1d

Browse files
authored
Merge pull request #151 from npt/master
Fix another DeprecationWarning, and a bug in _is_expired
2 parents 32f27b1 + d0a4eb2 commit e04cd1d

File tree

2 files changed

+24
-2
lines changed

2 files changed

+24
-2
lines changed

aiogoogle/auth/utils.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,10 @@ def create_secret(bytes_length=1024): # pragma: no cover
1414

1515

1616
def _get_expires_at(expires_in):
17-
expires_at = datetime.datetime.utcnow() + datetime.timedelta(seconds=expires_in)
17+
expires_at = datetime.datetime.now() + datetime.timedelta(seconds=expires_in)
1818
# account for clock skew
1919
expires_at -= datetime.timedelta(seconds=120)
20+
expires_at = expires_at.astimezone(datetime.timezone.utc).replace(tzinfo=None)
2021
return expires_at.isoformat()
2122

2223

@@ -30,7 +31,9 @@ def _is_expired(expires_at):
3031
expires_at = _parse_isoformat(expires_at)
3132
else:
3233
expires_at = datetime.datetime.fromisoformat(expires_at)
33-
if datetime.datetime.utcnow() >= expires_at:
34+
if expires_at.tzinfo is None:
35+
expires_at = expires_at.replace(tzinfo=datetime.timezone.utc)
36+
if datetime.datetime.now(datetime.timezone.utc) >= expires_at:
3437
return True
3538
else:
3639
return False
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import datetime
2+
3+
from aiogoogle.auth.utils import _get_expires_at, _is_expired
4+
5+
6+
def test_get_expires_at():
7+
exp_str = _get_expires_at(120)
8+
exp_dt = datetime.datetime.fromisoformat(exp_str)
9+
assert exp_dt.tzinfo is None
10+
delta = datetime.datetime.now(datetime.timezone.utc).replace(tzinfo=None) - exp_dt
11+
assert -1 < delta.seconds < 1
12+
13+
14+
def test_is_expired():
15+
# correctness not tested, but none of these should raise an exception
16+
_is_expired("2024-10-01T14:26:21")
17+
_is_expired("2024-10-01T14:26:21+00:00")
18+
_is_expired(datetime.datetime.now())
19+
_is_expired(datetime.datetime.now(datetime.timezone.utc))

0 commit comments

Comments
 (0)