Сделал тест на получение доступных чатов

This commit is contained in:
urec56 2024-03-06 20:44:31 +03:00
parent 02400f952b
commit 3c6c0df1ca
4 changed files with 38 additions and 6 deletions

View file

@ -6,6 +6,7 @@ from pathlib import Path
from PIL import Image from PIL import Image
from pydantic import EmailStr from pydantic import EmailStr
from app.config import settings from app.config import settings
from app.tasks.celery import celery from app.tasks.celery import celery
from app.tasks.email_templates import create_registration_confirmation_template, \ from app.tasks.email_templates import create_registration_confirmation_template, \
@ -22,9 +23,11 @@ def generate_confirmation_code(length=6):
def send_registration_confirmation_email( def send_registration_confirmation_email(
username: str, username: str,
email_to: EmailStr, email_to: EmailStr,
MODE: str
): ):
confirmation_code = generate_confirmation_code() confirmation_code = generate_confirmation_code()
if MODE == 'TEST':
return confirmation_code
msg_content = create_registration_confirmation_template( msg_content = create_registration_confirmation_template(
username=username, email_to=email_to, confirmation_code=confirmation_code username=username, email_to=email_to, confirmation_code=confirmation_code
) )
@ -40,7 +43,10 @@ def send_registration_confirmation_email(
def send_password_change_email( def send_password_change_email(
username: str, username: str,
email_to: EmailStr, email_to: EmailStr,
MODE: str
): ):
if MODE == 'TEST':
return True
msg_content = create_password_change_confirmation_template( msg_content = create_password_change_confirmation_template(
username=username, email_to=email_to username=username, email_to=email_to
) )
@ -56,9 +62,11 @@ def send_password_change_email(
def send_password_recover_email( def send_password_recover_email(
username: str, username: str,
email_to: EmailStr, email_to: EmailStr,
MODE: str
): ):
confirmation_code = generate_confirmation_code() confirmation_code = generate_confirmation_code()
if MODE == 'TEST':
return confirmation_code
msg_content = create_password_recover_template( msg_content = create_password_recover_template(
username=username, email_to=email_to, confirmation_code=confirmation_code username=username, email_to=email_to, confirmation_code=confirmation_code
) )

View file

@ -1,3 +1,16 @@
import pytest import pytest
from httpx import AsyncClient from httpx import AsyncClient
async def test_get_chats(ac: AsyncClient):
await ac.post("/users/login", json={
"email_or_username": 'urec',
"password": '12311231'
})
response = await ac.get('/chat')
assert response.status_code == 200
print(response.json())
assert len(response.json()) == 2

View file

@ -6,5 +6,13 @@
{ {
"user_id": 3, "user_id": 3,
"chat_id": 2 "chat_id": 2
},
{
"user_id": 1,
"chat_id": 1
},
{
"user_id": 3,
"chat_id": 1
} }
] ]

View file

@ -1,6 +1,7 @@
from fastapi import APIRouter, Response, Depends, status from fastapi import APIRouter, Response, Depends, status
from fastapi.responses import RedirectResponse from fastapi.responses import RedirectResponse
from app.config import settings
from app.exceptions import UsernameAlreadyInUseException, \ from app.exceptions import UsernameAlreadyInUseException, \
IncorrectPasswordException, PasswordsМismatchException, WrongCodeException, UserNotFoundException, \ IncorrectPasswordException, PasswordsМismatchException, WrongCodeException, UserNotFoundException, \
SomethingWentWrongException SomethingWentWrongException
@ -44,7 +45,9 @@ async def register_user(response: Response, user_data: SUserRegister):
date_of_birth=user_data.date_of_birth, date_of_birth=user_data.date_of_birth,
) )
result = send_registration_confirmation_email.delay(username=user_data.username, email_to=user_data.email) result = send_registration_confirmation_email.delay(
username=user_data.username, email_to=user_data.email, MODE=settings.MODE
)
result = result.get() result = result.get()
if await UserCodesDAO.set_user_codes( if await UserCodesDAO.set_user_codes(
@ -116,7 +119,7 @@ async def change_password(new_password: SUserPassword, current_user: Users = Dep
raise PasswordsМismatchException raise PasswordsМismatchException
hashed_password = get_password_hash(new_password.new_password) hashed_password = get_password_hash(new_password.new_password)
await UserDAO.change_data(current_user.id, hashed_password=hashed_password) await UserDAO.change_data(current_user.id, hashed_password=hashed_password)
send_password_change_email.delay(current_user.username, current_user.email) send_password_change_email.delay(current_user.username, current_user.email, MODE=settings.MODE)
@router.patch("/send_recovery_email", status_code=status.HTTP_200_OK, response_model=SRecoverEmailSent) @router.patch("/send_recovery_email", status_code=status.HTTP_200_OK, response_model=SRecoverEmailSent)
@ -124,7 +127,7 @@ async def send_recovery_email(email: SUserPasswordRecover):
existing_user = await UserDAO.find_one_or_none(email=email.email) existing_user = await UserDAO.find_one_or_none(email=email.email)
if not existing_user: if not existing_user:
raise UserNotFoundException raise UserNotFoundException
result = send_password_recover_email.delay(existing_user.username, existing_user.email) result = send_password_recover_email.delay(existing_user.username, existing_user.email, MODE=settings.MODE)
result = result.get() result = result.get()
if await UserCodesDAO.set_user_codes( if await UserCodesDAO.set_user_codes(
@ -153,5 +156,5 @@ async def password_recovery(passwords: SUserPasswordChange):
user = await UserDAO.find_one_or_none(username=username, id=passwords.user_id) user = await UserDAO.find_one_or_none(username=username, id=passwords.user_id)
if not user: if not user:
raise UserNotFoundException raise UserNotFoundException
send_password_change_email.delay(user.username, user.email) send_password_change_email.delay(user.username, user.email, MODE=settings.MODE)
return {"username": username} return {"username": username}