permissions tests

This commit is contained in:
2026-08-23 14:51:07 +03:00
parent 6d1459f4d5
commit 88bd61d28b
2 changed files with 169 additions and 0 deletions
+46
View File
@@ -0,0 +1,46 @@
import allure
import pytest
import requests_async
from httpx import HTTPStatusError
class TestAuth:
async def test_get_access_token_positive(self, target_url:str)->None:
with allure.step("get_access_token"), pytest.raises(HTTPStatusError) as exc_info:
response = await requests_async.post(f"{target_url}/protected/token")
response.raise_for_status()
assert exc_info.value.response.status_code != 403
assert exc_info.value.response.status_code != 401
async def test_get_refresh_token_positive(self, target_url:str)->None:
with allure.step("get_refresh_token"), pytest.raises(HTTPStatusError) as exc_info:
response = await requests_async.post(f"{target_url}/protected/refresh")
response.raise_for_status()
assert exc_info.value.response.status_code != 403
assert exc_info.value.response.status_code != 401
async def test_get_root_positive(self, target_url:str)->None:
with allure.step("get_root"), pytest.raises(HTTPStatusError) as exc_info:
response = await requests_async.get(f"{target_url}/protected")
response.raise_for_status()
assert exc_info.value.response.status_code != 403
assert exc_info.value.response.status_code == 401
@pytest.mark.parametrize("test_user_fixture", [([], [])], indirect=True)
async def test_get_logout_positive(self,test_user_fixture, target_url:str)->None:
session=test_user_fixture[0]
with allure.step("get_root"), pytest.raises(HTTPStatusError) as exc_info:
response = await session.get(f"{target_url}/protected/logout")
response.raise_for_status()
assert exc_info.value.response.status_code != 403
assert exc_info.value.response.status_code != 401
+123
View File
@@ -258,3 +258,126 @@ class TestCrud:
response.raise_for_status() response.raise_for_status()
assert exc_info.value.response.status_code == expected_status assert exc_info.value.response.status_code == expected_status
@pytest.mark.parametrize("test_user_fixture", [(["admin"], ["admin_group"])], indirect=True)
async def test_get_user_by_email_permissions_positive(self,test_user_fixture, target_url:str)->None:
session=test_user_fixture[0]
with allure.step("Get user by email"), pytest.raises(HTTPStatusError) as exc_info:
response = await session.get(f"{target_url}/user/get_by_email")
response.raise_for_status()
assert exc_info.value.response.status_code != 403
@pytest.mark.parametrize("test_user_fixture", [([], [])], indirect=True)
async def test_get_user_by_email_permissions_negative(self,test_user_fixture, target_url:str)->None:
session=test_user_fixture[0]
with allure.step("Get user by email"), pytest.raises(HTTPStatusError) as exc_info:
response = await session.get(f"{target_url}/user/get_by_email")
response.raise_for_status()
assert exc_info.value.response.status_code == 403
@pytest.mark.parametrize("test_user_fixture", [(["admin"], ["admin_group"])], indirect=True)
async def test_create_user_permissions_positive(self,test_user_fixture, target_url:str)->None:
session=test_user_fixture[0]
with allure.step("Get user by email"), pytest.raises(HTTPStatusError) as exc_info:
response = await session.post(f"{target_url}/user/create_user")
response.raise_for_status()
assert exc_info.value.response.status_code != 403
@pytest.mark.parametrize("test_user_fixture", [([], [])], indirect=True)
async def test_create_user_permissions_negative(self,test_user_fixture, target_url:str)->None:
session=test_user_fixture[0]
with allure.step("Get user by email"), pytest.raises(HTTPStatusError) as exc_info:
response = await session.post(f"{target_url}/user/create_user")
response.raise_for_status()
assert exc_info.value.response.status_code == 403
@pytest.mark.parametrize("test_user_fixture", [(["admin"], ["admin_group"])], indirect=True)
async def test_patch_user_permissions_positive(self,test_user_fixture, target_url:str)->None:
session=test_user_fixture[0]
with allure.step("Get user by email"), pytest.raises(HTTPStatusError) as exc_info:
response = await session.patch(f"{target_url}/user/patch_user")
response.raise_for_status()
assert exc_info.value.response.status_code != 403
@pytest.mark.parametrize("test_user_fixture", [([], [])], indirect=True)
async def test_patch_user_permissions_negative(self,test_user_fixture, target_url:str)->None:
session=test_user_fixture[0]
with allure.step("Get user by email"), pytest.raises(HTTPStatusError) as exc_info:
response = await session.patch(f"{target_url}/user/patch_user")
response.raise_for_status()
assert exc_info.value.response.status_code == 403
@pytest.mark.parametrize("test_user_fixture", [(["admin"], ["admin_group"])], indirect=True)
async def test_delete_user_soft_permissions_positive(self,test_user_fixture, target_url:str)->None:
session=test_user_fixture[0]
with allure.step("Get user by email"), pytest.raises(HTTPStatusError) as exc_info:
response = await session.post(f"{target_url}/user/delete_user_soft")
response.raise_for_status()
assert exc_info.value.response.status_code != 403
@pytest.mark.parametrize("test_user_fixture", [([], [])], indirect=True)
async def test_delete_user_soft_permissions_negative(self,test_user_fixture, target_url:str)->None:
session=test_user_fixture[0]
with allure.step("Get user by email"), pytest.raises(HTTPStatusError) as exc_info:
response = await session.post(f"{target_url}/user/delete_user_soft")
response.raise_for_status()
assert exc_info.value.response.status_code == 403
@pytest.mark.parametrize("test_user_fixture", [(["admin"], ["admin_group"])], indirect=True)
async def test_delete_user_hard_permissions_positive(self,test_user_fixture, target_url:str)->None:
session=test_user_fixture[0]
with allure.step("Get user by email"), pytest.raises(HTTPStatusError) as exc_info:
response = await session.post(f"{target_url}/user/delete_user_hard")
response.raise_for_status()
assert exc_info.value.response.status_code != 403
@pytest.mark.parametrize("test_user_fixture", [([], [])], indirect=True)
async def test_delete_user_hard_permissions_negative(self,test_user_fixture, target_url:str)->None:
session=test_user_fixture[0]
with allure.step("Get user by email"), pytest.raises(HTTPStatusError) as exc_info:
response = await session.post(f"{target_url}/user/delete_user_hard")
response.raise_for_status()
assert exc_info.value.response.status_code == 403