Skip to content

Commit 0a72b34

Browse files
committed
Resolve deprecation warnings related to datetime.utcnow in python 3.12
1 parent 4b0701b commit 0a72b34

File tree

2 files changed

+15
-15
lines changed

2 files changed

+15
-15
lines changed

jose/jwt.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from collections.abc import Mapping
66
except ImportError:
77
from collections import Mapping
8-
from datetime import datetime, timedelta
8+
from datetime import datetime, timedelta, UTC
99

1010
from jose import jws
1111

@@ -281,7 +281,7 @@ def _validate_nbf(claims, leeway=0):
281281
except ValueError:
282282
raise JWTClaimsError("Not Before claim (nbf) must be an integer.")
283283

284-
now = timegm(datetime.utcnow().utctimetuple())
284+
now = timegm(datetime.now(UTC).utctimetuple())
285285

286286
if nbf > (now + leeway):
287287
raise JWTClaimsError("The token is not yet valid (nbf)")
@@ -311,7 +311,7 @@ def _validate_exp(claims, leeway=0):
311311
except ValueError:
312312
raise JWTClaimsError("Expiration Time claim (exp) must be an integer.")
313313

314-
now = timegm(datetime.utcnow().utctimetuple())
314+
now = timegm(datetime.now(UTC).utctimetuple())
315315

316316
if exp < (now - leeway):
317317
raise ExpiredSignatureError("Signature has expired.")

tests/test_jwt.py

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import base64
22
import json
3-
from datetime import datetime, timedelta
3+
from datetime import datetime, timedelta, UTC
44

55
import pytest
66

@@ -180,7 +180,7 @@ def test_leeway_is_int(self):
180180
pass
181181

182182
def test_leeway_is_timedelta(self, claims, key):
183-
nbf = datetime.utcnow() + timedelta(seconds=5)
183+
nbf = datetime.now(UTC) + timedelta(seconds=5)
184184
leeway = timedelta(seconds=10)
185185

186186
claims = {
@@ -209,15 +209,15 @@ def test_nbf_not_int(self, key):
209209
jwt.decode(token, key)
210210

211211
def test_nbf_datetime(self, key):
212-
nbf = datetime.utcnow() - timedelta(seconds=5)
212+
nbf = datetime.now(UTC) - timedelta(seconds=5)
213213

214214
claims = {"nbf": nbf}
215215

216216
token = jwt.encode(claims, key)
217217
jwt.decode(token, key)
218218

219219
def test_nbf_with_leeway(self, key):
220-
nbf = datetime.utcnow() + timedelta(seconds=5)
220+
nbf = datetime.now(UTC) + timedelta(seconds=5)
221221

222222
claims = {
223223
"nbf": nbf,
@@ -229,7 +229,7 @@ def test_nbf_with_leeway(self, key):
229229
jwt.decode(token, key, options=options)
230230

231231
def test_nbf_in_future(self, key):
232-
nbf = datetime.utcnow() + timedelta(seconds=5)
232+
nbf = datetime.now(UTC) + timedelta(seconds=5)
233233

234234
claims = {"nbf": nbf}
235235

@@ -239,7 +239,7 @@ def test_nbf_in_future(self, key):
239239
jwt.decode(token, key)
240240

241241
def test_nbf_skip(self, key):
242-
nbf = datetime.utcnow() + timedelta(seconds=5)
242+
nbf = datetime.now(UTC) + timedelta(seconds=5)
243243

244244
claims = {"nbf": nbf}
245245

@@ -261,15 +261,15 @@ def test_exp_not_int(self, key):
261261
jwt.decode(token, key)
262262

263263
def test_exp_datetime(self, key):
264-
exp = datetime.utcnow() + timedelta(seconds=5)
264+
exp = datetime.now(UTC) + timedelta(seconds=5)
265265

266266
claims = {"exp": exp}
267267

268268
token = jwt.encode(claims, key)
269269
jwt.decode(token, key)
270270

271271
def test_exp_with_leeway(self, key):
272-
exp = datetime.utcnow() - timedelta(seconds=5)
272+
exp = datetime.now(UTC) - timedelta(seconds=5)
273273

274274
claims = {
275275
"exp": exp,
@@ -281,7 +281,7 @@ def test_exp_with_leeway(self, key):
281281
jwt.decode(token, key, options=options)
282282

283283
def test_exp_in_past(self, key):
284-
exp = datetime.utcnow() - timedelta(seconds=5)
284+
exp = datetime.now(UTC) - timedelta(seconds=5)
285285

286286
claims = {"exp": exp}
287287

@@ -291,7 +291,7 @@ def test_exp_in_past(self, key):
291291
jwt.decode(token, key)
292292

293293
def test_exp_skip(self, key):
294-
exp = datetime.utcnow() - timedelta(seconds=5)
294+
exp = datetime.now(UTC) - timedelta(seconds=5)
295295

296296
claims = {"exp": exp}
297297

@@ -504,8 +504,8 @@ def test_unverified_claims_object(self, claims, key):
504504
[
505505
("aud", "aud"),
506506
("ait", "ait"),
507-
("exp", datetime.utcnow() + timedelta(seconds=3600)),
508-
("nbf", datetime.utcnow() - timedelta(seconds=5)),
507+
("exp", datetime.now(UTC) + timedelta(seconds=3600)),
508+
("nbf", datetime.now(UTC) - timedelta(seconds=5)),
509509
("iss", "iss"),
510510
("sub", "sub"),
511511
("jti", "jti"),

0 commit comments

Comments
 (0)