feature/permissions #7
@@ -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
|
||||
|
||||
@@ -258,3 +258,126 @@ class TestCrud:
|
||||
response.raise_for_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
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user