-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsecurity_test.py
More file actions
39 lines (24 loc) · 1.13 KB
/
security_test.py
File metadata and controls
39 lines (24 loc) · 1.13 KB
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
29
30
31
32
33
34
35
36
37
38
39
import pytest
from time_tracker_api.security import parse_jwt, parse_tenant_id_from_iss_claim
def test_parse_jwt_with_valid_input(valid_jwt: str):
result = parse_jwt("Bearer %s" % valid_jwt)
assert result is not None
assert type(result) is dict
def test_parse_jwt_with_invalid_input():
result = parse_jwt("whetever")
assert result is None
@pytest.mark.parametrize(
'domain_prefix', ['securityioet', 'ioetec', 'anything-else']
)
def test_parse_tenant_id_from_iss_claim_with_valid_input(domain_prefix):
valid_iss_claim = f'https://{domain_prefix}.b2clogin.com/b21c4e98-c4bf-420f-9d76-e51c2515c7a4/v2.0/'
result = parse_tenant_id_from_iss_claim(valid_iss_claim)
assert result is not None
assert type(result) is str
assert result == "b21c4e98-c4bf-420f-9d76-e51c2515c7a4"
def test_parse_tenant_id_from_iss_claim_with_invalid_input():
invalid_iss_claim1 = "https://securityioet.b2clogin.com/whatever/v2.0/"
invalid_iss_claim2 = ""
result1 = parse_tenant_id_from_iss_claim(invalid_iss_claim1)
result2 = parse_tenant_id_from_iss_claim(invalid_iss_claim2)
assert result1 == result2 == None