99from cms_backend .api .token import OAuthTokenDecoder
1010from cms_backend .utils .datetime import getnow
1111
12+ TEST_ISSUER = "https://foo.acme.org"
13+ TEST_AUDIENCE_ID = "d87a31d2-874e-44c4-9dc2-63fad523bf1c"
14+
1215
1316def create_test_session_jwt_token (
14- issuer : str = "https://login.kiwix.org" ,
15- audience_id : str = "d87a31d2-874e-44c4-9dc2-63fad523bf1b" ,
17+ issuer : str = TEST_ISSUER ,
18+ audience_id : str = TEST_AUDIENCE_ID ,
1619 subject : str | None = None ,
1720 exp_delta : datetime .timedelta = datetime .timedelta (hours = 1 ),
1821 aal : str = "aal2" ,
@@ -39,7 +42,7 @@ def create_test_session_jwt_token(
3942
4043
4144def create_test_client_jwt_token (
42- issuer : str = "https://login.kiwix.org" ,
45+ issuer : str = TEST_ISSUER ,
4346 client_id : str = "test-client-id" ,
4447 subject : str | None = None ,
4548 exp_delta : datetime .timedelta = datetime .timedelta (hours = 1 ),
@@ -67,12 +70,10 @@ def test_verify_session_access_token_expired_token(
6770 monkeypatch : pytest .MonkeyPatch ,
6871):
6972 """Test that expired session tokens raise ValueError."""
70- monkeypatch .setattr (
71- "cms_backend.api.context.Context.oauth_issuer" , "https://login.kiwix.org"
72- )
73+ monkeypatch .setattr ("cms_backend.api.context.Context.oauth_issuer" , TEST_ISSUER )
7374 monkeypatch .setattr (
7475 "cms_backend.api.context.Context.oauth_session_audience_id" ,
75- "d87a31d2-874e-44c4-9dc2-63fad523bf1b" ,
76+ TEST_AUDIENCE_ID ,
7677 )
7778
7879 test_token = create_test_session_jwt_token ()
@@ -100,12 +101,10 @@ def test_verify_session_access_token_with_2fa_enabled_and_valid_aal(
100101 monkeypatch : pytest .MonkeyPatch ,
101102):
102103 """Test successful verification when 2FA is enabled and user has aal2."""
103- monkeypatch .setattr (
104- "cms_backend.api.context.Context.oauth_issuer" , "https://login.kiwix.org"
105- )
104+ monkeypatch .setattr ("cms_backend.api.context.Context.oauth_issuer" , TEST_ISSUER )
106105 monkeypatch .setattr (
107106 "cms_backend.api.context.Context.oauth_session_audience_id" ,
108- "d87a31d2-874e-44c4-9dc2-63fad523bf1b" ,
107+ TEST_AUDIENCE_ID ,
109108 )
110109 monkeypatch .setattr (
111110 "cms_backend.api.context.Context.oauth_session_login_require_2fa" , True
@@ -118,9 +117,9 @@ def test_verify_session_access_token_with_2fa_enabled_and_valid_aal(
118117 mock_signing_key .key = "test-key"
119118
120119 decoded_payload = {
121- "iss" : "https://login.kiwix.org" ,
120+ "iss" : TEST_ISSUER ,
122121 "sub" : str (UUID (int = 0 )),
123- "aud" : "d87a31d2-874e-44c4-9dc2-63fad523bf1b" ,
122+ "aud" : TEST_AUDIENCE_ID ,
124123 "name" : "Test User" ,
125124 "iat" : int (getnow ().timestamp ()),
126125 "exp" : int ((getnow () + datetime .timedelta (hours = 1 )).timestamp ()),
@@ -150,12 +149,10 @@ def test_verify_session_access_token_with_2fa_enabled_only_aal1(
150149 monkeypatch : pytest .MonkeyPatch ,
151150):
152151 """Test verification fails when 2FA is enabled but only aal1 is present."""
153- monkeypatch .setattr (
154- "cms_backend.api.context.Context.oauth_issuer" , "https://login.kiwix.org"
155- )
152+ monkeypatch .setattr ("cms_backend.api.context.Context.oauth_issuer" , TEST_ISSUER )
156153 monkeypatch .setattr (
157154 "cms_backend.api.context.Context.oauth_session_audience_id" ,
158- "d87a31d2-874e-44c4-9dc2-63fad523bf1b" ,
155+ TEST_AUDIENCE_ID ,
159156 )
160157 monkeypatch .setattr (
161158 "cms_backend.api.context.Context.oauth_session_login_require_2fa" , True
@@ -167,9 +164,9 @@ def test_verify_session_access_token_with_2fa_enabled_only_aal1(
167164 mock_signing_key .key = "test-key"
168165
169166 decoded_payload = {
170- "iss" : "https://login.kiwix.org" ,
167+ "iss" : TEST_ISSUER ,
171168 "sub" : str (UUID (int = 0 )),
172- "aud" : "d87a31d2-874e-44c4-9dc2-63fad523bf1b" ,
169+ "aud" : TEST_AUDIENCE_ID ,
173170 "name" : "Test User" ,
174171 "iat" : int (getnow ().timestamp ()),
175172 "exp" : int ((getnow () + datetime .timedelta (hours = 1 )).timestamp ()),
@@ -198,12 +195,10 @@ def test_verify_session_access_token_with_2fa_disabled_only_aal1(
198195 """
199196 Test that verification succeeds when 2FA is disabled even with only aal1
200197 """
201- monkeypatch .setattr (
202- "cms_backend.api.context.Context.oauth_issuer" , "https://login.kiwix.org"
203- )
198+ monkeypatch .setattr ("cms_backend.api.context.Context.oauth_issuer" , TEST_ISSUER )
204199 monkeypatch .setattr (
205200 "cms_backend.api.context.Context.oauth_session_audience_id" ,
206- "d87a31d2-874e-44c4-9dc2-63fad523bf1b" ,
201+ TEST_AUDIENCE_ID ,
207202 )
208203 monkeypatch .setattr (
209204 "cms_backend.api.context.Context.oauth_session_login_require_2fa" , False
@@ -215,9 +210,9 @@ def test_verify_session_access_token_with_2fa_disabled_only_aal1(
215210 mock_signing_key .key = "test-key"
216211
217212 decoded_payload = {
218- "iss" : "https://login.kiwix.org" ,
213+ "iss" : TEST_ISSUER ,
219214 "sub" : str (UUID (int = 0 )),
220- "aud" : "d87a31d2-874e-44c4-9dc2-63fad523bf1b" ,
215+ "aud" : TEST_AUDIENCE_ID ,
221216 "name" : "Test User" ,
222217 "iat" : int (getnow ().timestamp ()),
223218 "exp" : int ((getnow () + datetime .timedelta (hours = 1 )).timestamp ()),
@@ -248,9 +243,7 @@ def test_verify_client_access_token_valid(
248243 monkeypatch : pytest .MonkeyPatch ,
249244):
250245 """Test successful verification of valid OAuth2 client token."""
251- monkeypatch .setattr (
252- "cms_backend.api.context.Context.oauth_issuer" , "https://login.kiwix.org"
253- )
246+ monkeypatch .setattr ("cms_backend.api.context.Context.oauth_issuer" , TEST_ISSUER )
254247 monkeypatch .setattr (
255248 "cms_backend.api.context.Context.oauth_client_id" ,
256249 "test-client-id" ,
@@ -262,7 +255,7 @@ def test_verify_client_access_token_valid(
262255 mock_signing_key .key = "test-key"
263256
264257 decoded_payload = {
265- "iss" : "https://login.kiwix.org" ,
258+ "iss" : TEST_ISSUER ,
266259 "sub" : str (UUID (int = 0 )),
267260 "client_id" : str (UUID (int = 0 )),
268261 "iat" : int (getnow ().timestamp ()),
@@ -291,9 +284,7 @@ def test_verify_client_access_token_invalid_client_id(
291284 monkeypatch : pytest .MonkeyPatch ,
292285):
293286 """Test verification fails when client_id doesn't match."""
294- monkeypatch .setattr (
295- "cms_backend.api.context.Context.oauth_issuer" , "https://login.kiwix.org"
296- )
287+ monkeypatch .setattr ("cms_backend.api.context.Context.oauth_issuer" , TEST_ISSUER )
297288 monkeypatch .setattr (
298289 "cms_backend.api.context.Context.oauth_client_id" ,
299290 "expected-client-id" ,
@@ -305,7 +296,7 @@ def test_verify_client_access_token_invalid_client_id(
305296 mock_signing_key .key = "test-key"
306297
307298 decoded_payload = {
308- "iss" : "https://login.kiwix.org" ,
299+ "iss" : TEST_ISSUER ,
309300 "sub" : str (UUID (int = 0 )),
310301 "client_id" : "wrong-client-id" ,
311302 "iat" : int (getnow ().timestamp ()),
0 commit comments