/
outthevoid
/
python_microblogging_service_project
Обзор
Документация
Войти
/
outthevoid
/
python_microblogging_service_project
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
tests/test_likes.py
78 строк
3 KB
VladimirChukavin
Revert "Вернул проект в исходное состояние."
07 апр 2026, 14:01
07 апр 2026, 14:01
7531b60
Код
Авторство
О чём код?
from typing import Dict import pytest from httpx import AsyncClient @pytest.mark.asyncio async def test_like_tweet_success(client: AsyncClient) -> None: """ Проверяет успешную постановку лайка на твит. Отправляет запрос от пользователя, который ранее не ставил лайк, и ожидает успешный статус и положительный результат в ответе. """ response = await client.post( "/api/tweets/1/likes", headers={"api-key": "charlie-key"} ) assert response.status_code == 200 assert response.json()["result"] is True @pytest.mark.asyncio async def test_like_tweet_conflict_when_already_liked( client: AsyncClient, auth_headers: Dict[str, str] ) -> None: """ Проверяет возврат конфликта при повторной попытке лайкнуть твит. Отправляет запрос от пользователя, который уже поставил лайк, и ожидает статус 409 и тип ошибки ``conflict_error``. """ response = await client.post("/api/tweets/1/likes", headers=auth_headers) assert response.status_code == 409 result = response.json() assert result["result"] is False assert result["error_type"] == "conflict_error" @pytest.mark.asyncio async def test_unlike_tweet_success( client: AsyncClient, auth_headers: Dict[str, str] ) -> None: """ Проверяет успешное снятие лайка с твита. Отправляет запрос на удаление лайка от пользователя, который ранее ставил лайк, и ожидает успешный статус и положительный результат. """ response = await client.delete("/api/tweets/1/likes", headers=auth_headers) assert response.status_code == 200 assert response.json()["result"] is True @pytest.mark.asyncio async def test_unlike_missing_like_returns_not_found(client: AsyncClient) -> None: """ Проверяет возврат ошибки 404 при попытке снять отсутствующий лайк. Отправляет запрос на удаление лайка от пользователя, который не ставил лайк, и ожидает статус 404 и тип ошибки ``not_found``. """ response = await client.delete( "/api/tweets/1/likes", headers={"api-key": "charlie-key"} ) assert response.status_code == 404 result = response.json() assert result["result"] is False assert result["error_type"] == "not_found"