Create test_app.py
This commit is contained in:
42
test_app.py
Normal file
42
test_app.py
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
import pytest
|
||||||
|
import asyncio
|
||||||
|
from aioresponses import aioresponses
|
||||||
|
from app import fetch_image, DERPYBOORU_API_SEARCH, DERPIBOORU_TOKEN
|
||||||
|
|
||||||
|
@pytest.mark.asyncio
|
||||||
|
async def test_fetch_image_found():
|
||||||
|
# Мокаем API-ответ с одним изображением
|
||||||
|
tags = ["safe", "pony"]
|
||||||
|
with aioresponses() as m:
|
||||||
|
m.get(
|
||||||
|
f"{DERPYBOORU_API_SEARCH}",
|
||||||
|
payload={
|
||||||
|
"images": [
|
||||||
|
{
|
||||||
|
"representations": {"full": "https://test.img/full.png"},
|
||||||
|
"uploader": "tester",
|
||||||
|
"view_url": "https://derpibooru.org/images/1",
|
||||||
|
"tags": ["pony", "cute"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
)
|
||||||
|
async with asyncio.get_event_loop().run_until_complete:
|
||||||
|
result = await fetch_image(tags)
|
||||||
|
assert result is not None
|
||||||
|
url, author, source, img_tags = result
|
||||||
|
assert url == "https://test.img/full.png"
|
||||||
|
assert author == "tester"
|
||||||
|
assert source == "https://derpibooru.org/images/1"
|
||||||
|
assert "pony" in img_tags
|
||||||
|
|
||||||
|
@pytest.mark.asyncio
|
||||||
|
async def test_fetch_image_not_found():
|
||||||
|
tags = ["nonexistenttag123"]
|
||||||
|
with aioresponses() as m:
|
||||||
|
m.get(
|
||||||
|
f"{DERPYBOORU_API_SEARCH}",
|
||||||
|
payload={"images": []}
|
||||||
|
)
|
||||||
|
result = await fetch_image(tags)
|
||||||
|
assert result is None
|
||||||
Reference in New Issue
Block a user