|
1 | 1 | import base64 |
2 | 2 | import json |
| 3 | +from datetime import datetime, timedelta |
3 | 4 |
|
4 | 5 | try: |
5 | | - from datetime import UTC, datetime, timedelta |
6 | | - |
7 | | - utc_now = datetime.now(UTC) # Preferred in Python 3.13+ |
| 6 | + from datetime import UTC # Preferred in Python 3.13+ |
8 | 7 | except ImportError: |
9 | | - from datetime import datetime, timedelta, timezone |
| 8 | + from datetime import timezone # Preferred in Python 3.12 and below |
10 | 9 |
|
11 | | - utc_now = datetime.now(timezone.utc) # Preferred in Python 3.12 and below |
12 | 10 | UTC = timezone.utc |
13 | 11 |
|
14 | | - |
15 | 12 | import pytest |
16 | 13 |
|
17 | 14 | from jose import jws, jwt |
@@ -514,14 +511,16 @@ def test_unverified_claims_object(self, claims, key): |
514 | 511 | [ |
515 | 512 | ("aud", "aud"), |
516 | 513 | ("ait", "ait"), |
517 | | - ("exp", utc_now + timedelta(seconds=3600)), |
518 | | - ("nbf", utc_now - timedelta(seconds=5)), |
| 514 | + ("exp", lambda: datetime.now(UTC) + timedelta(seconds=3600)), |
| 515 | + ("nbf", lambda: datetime.now(UTC) - timedelta(seconds=5)), |
519 | 516 | ("iss", "iss"), |
520 | 517 | ("sub", "sub"), |
521 | 518 | ("jti", "jti"), |
522 | 519 | ], |
523 | 520 | ) |
524 | 521 | def test_require(self, claims, key, claim, value): |
| 522 | + if callable(value): |
| 523 | + value = value() |
525 | 524 | options = {"require_" + claim: True, "verify_" + claim: False} |
526 | 525 |
|
527 | 526 | token = jwt.encode(claims, key) |
|
0 commit comments