11from __future__ import annotations
22
3+ import asyncio
34import importlib .metadata
45
5- import asyncio
66import pytest
7- from .common import _is_async
87
98import save_and_restore_api
109from save_and_restore_api import SaveRestoreAPI as SaveRestoreAPI_Threads
1110from save_and_restore_api .aio import SaveRestoreAPI as SaveRestoreAPI_Async
1211
12+ from .common import _is_async
13+
1314admin_username , admin_password = "admin" , "adminPass"
1415user_username , user_password = "user" , "userPass"
1516read_username , read_password = "johndoe" , "1234"
@@ -23,30 +24,39 @@ def test_version():
2324
2425# fmt: off
2526@pytest .mark .parametrize ("library" , ["THREADS" , "ASYNC" ])
26- @pytest .mark .parametrize ("username, password, roles" , [
27- (admin_username , admin_password , ["ROLE_SAR-ADMIN" ]),
28- (user_username , user_password , ["ROLE_SAR-USER" ]),
29- (read_username , read_password , []),
27+ @pytest .mark .parametrize ("username, password, roles, code" , [
28+ (admin_username , admin_password , ["ROLE_SAR-ADMIN" ], 200 ),
29+ (user_username , user_password , ["ROLE_SAR-USER" ], 200 ),
30+ (read_username , read_password , [], 200 ),
31+ (user_username , read_password , [], 401 ),
3032])
3133# fmt: on
32- def test_login_01 (username , password , roles , library ):
34+ def test_login_01 (username , password , roles , library , code ):
3335 if not _is_async (library ):
3436 SR = SaveRestoreAPI_Threads (base_url = base_url , timeout = 2 )
3537 SR .set_auth (username = user_username , password = user_password )
3638 SR .open ()
37- response = SR .login (username = username , password = password )
39+ if code == 200 :
40+ response = SR .login (username = username , password = password )
41+ assert response ["userName" ] == username
42+ assert response ["roles" ] == roles
43+ else :
44+ with pytest .raises (SR .HTTPClientError , match = f"{ code } " ):
45+ SR .login (username = username , password = password )
3846 SR .close ()
39- assert response ["userName" ] == username
40- assert response ["roles" ] == roles
4147 else :
4248 async def testing ():
43- SR = SaveRestoreAPI_Threads (base_url = base_url , timeout = 2 )
49+ SR = SaveRestoreAPI_Async (base_url = base_url , timeout = 2 )
4450 SR .set_auth (username = user_username , password = user_password )
4551 SR .open ()
46- response = SR .login (username = username , password = password )
47- SR .close ()
48- assert response ["userName" ] == username
49- assert response ["roles" ] == roles
52+ if code == 200 :
53+ response = await SR .login (username = username , password = password )
54+ assert response ["userName" ] == username
55+ assert response ["roles" ] == roles
56+ else :
57+ with pytest .raises (SR .HTTPClientError , match = f"{ code } " ):
58+ await SR .login (username = username , password = password )
59+ await SR .close ()
5060
5161 asyncio .run (testing ())
5262
0 commit comments