pytest 1.7
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
from datetime import datetime, timedelta #jwt
|
from datetime import datetime, timedelta, timezone #jwt
|
||||||
from jose import JWTError, jwt
|
from jose import JWTError, jwt
|
||||||
from fastapi import HTTPException, Depends, status
|
from fastapi import HTTPException, Depends, status
|
||||||
from fastapi.security import OAuth2PasswordBearer
|
from fastapi.security import OAuth2PasswordBearer
|
||||||
@@ -17,7 +17,7 @@ class Token():
|
|||||||
@staticmethod
|
@staticmethod
|
||||||
async def create_token(data: dict, expires_delta: timedelta | None = None):
|
async def create_token(data: dict, expires_delta: timedelta | None = None):
|
||||||
to_encode = data.copy()
|
to_encode = data.copy()
|
||||||
expire = datetime.utcnow() + (expires_delta or timedelta(minutes=15))
|
expire = datetime.now(timezone.utc) + (expires_delta or timedelta(minutes=15))
|
||||||
to_encode.update({"exp": expire})
|
to_encode.update({"exp": expire})
|
||||||
encoded_jwt = jwt.encode(to_encode, SECRET_KEY, algorithm=ALGORITHM)
|
encoded_jwt = jwt.encode(to_encode, SECRET_KEY, algorithm=ALGORITHM)
|
||||||
return encoded_jwt
|
return encoded_jwt
|
||||||
|
|||||||
@@ -77,12 +77,35 @@ async def test_is_admin(client, monkeypatch, global_email, is_admin, expected_st
|
|||||||
assert response.status_code == expected_status
|
assert response.status_code == expected_status
|
||||||
api.dependency_overrides.clear()
|
api.dependency_overrides.clear()
|
||||||
|
|
||||||
|
@pytest.mark.asyncio
|
||||||
|
@pytest.mark.parametrize("email,password,expected_status", [
|
||||||
|
("valid", "123qwe!@#", 200),
|
||||||
|
("invalidemail.com", "123qwe!@#", 422),
|
||||||
|
("invalidpassword", "1234", 422),
|
||||||
|
("invalidall", "1234", 422)
|
||||||
|
])
|
||||||
|
async def test_login_user(client, email, password, expected_status, global_email):
|
||||||
|
'''Проверка: Логин пользователя'''
|
||||||
|
|
||||||
|
|
||||||
|
if email == "valid":
|
||||||
|
email = global_email #Подставка глобальной фикстуры под конкретный вариант
|
||||||
|
|
||||||
|
user_data = {
|
||||||
|
"username": email,
|
||||||
|
"password": password
|
||||||
|
}
|
||||||
|
response = await client.post(f"/login", data=user_data)
|
||||||
|
assert response.status_code == expected_status
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize("is_admin, can_delete,expected_status", [
|
@pytest.mark.parametrize("is_admin, can_delete,expected_status", [
|
||||||
(False,True,200),
|
(False,True,200),
|
||||||
(True,True,200),
|
(True,True,200),
|
||||||
(True,False,200),
|
(True,False,200),
|
||||||
(False, False,403)
|
(False, False,403)
|
||||||
])
|
])
|
||||||
|
|
||||||
@pytest.mark.asyncio
|
@pytest.mark.asyncio
|
||||||
async def test_delete_user(client, global_email, monkeypatch, is_admin, expected_status, can_delete):
|
async def test_delete_user(client, global_email, monkeypatch, is_admin, expected_status, can_delete):
|
||||||
"""Проверка: Удаление пользователя"""
|
"""Проверка: Удаление пользователя"""
|
||||||
|
|||||||
Reference in New Issue
Block a user