Files
The_Great_Excel_Project/tests/integrated/test_auth.py

47 lines
1.6 KiB
Python

from types import SimpleNamespace
from uuid import uuid4
import allure
import pytest
from src.service.auth.auth import CurrentUser
from src.service.auth.jwt import Jwt
@pytest.mark.integra
class TestAuth:
'''
create token
decode it
mock db with fake data
check output
'''
@pytest.mark.parametrize("user_data",[
(SimpleNamespace(first_name="test",
last_name="test",
middle_name="test",
email="d@d.d",
direct_permissions=[],
group=[],
status=True))
])
def test_get_current_user_positive(self,current_user_service:CurrentUser, jwt_service:Jwt, monkeypatch, user_data:SimpleNamespace)->None:
with allure.step("create token"):
token=jwt_service.create_access_token({"sub":str(uuid4())})
with allure.step("test get_current_user_with_fake_token"):
monkeypatch.setattr(current_user_service.crud_db_actions, "get_user_by_id", lambda user:user_data)
test_result= current_user_service.get_current_user(token)
assert test_result.first_name==user_data.first_name
assert test_result.last_name==user_data.last_name
assert test_result.middle_name==user_data.middle_name
assert test_result.email==user_data.email
assert test_result.direct_permissions==user_data.direct_permissions
assert test_result.group==user_data.group