summaryrefslogtreecommitdiffstats
path: root/lang/python/itsdangerous/test.sh
blob: 17f8174e324d2dc14fa0f4c718f76bcb86d563a5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/bin/sh

[ "$1" = python3-itsdangerous ] || exit 0

python3 - << 'EOF'
from itsdangerous import URLSafeSerializer, URLSafeTimedSerializer, BadSignature

s = URLSafeSerializer("secret-key")
token = s.dumps({"user_id": 42, "role": "admin"})
assert isinstance(token, str)
data = s.loads(token)
assert data["user_id"] == 42
assert data["role"] == "admin"

# Test that tampered tokens are rejected
try:
    s.loads(token + "tampered")
    assert False, "should have raised BadSignature"
except BadSignature:
    pass

# Test timed serializer
ts = URLSafeTimedSerializer("another-secret")
timed_token = ts.dumps("payload")
assert ts.loads(timed_token) == "payload"

print("python3-itsdangerous OK")
EOF