urfu-pe / test /test_api.py
kavlab
merged with github repo
1e7f40c
import kuznetsov_av
from fastapi.testclient import TestClient
from run_api import app
client = TestClient(app)
def test_get_description_image_predict() -> None:
"""
Тест API Описание загруженного изображения
"""
from zvereva_ev.develop_api_app import Url
response = client.post(
url="/get_description_image/predict/",
json=Url(url="https://fikiwiki.com/uploads/posts/2022-02/1645000127_53-"
"fikiwiki-com-p-kartinki-krasivie-babochki"
"-narisovannie-55.png"
).model_dump())
assert response.status_code == 200
assert response.text == '"Фото бабочки с оранжевыми крыльями и белыми точками"'
def test_langdetector_api_ru() -> None:
"""
Тест API определения языка текста RU (mulyavin_aa)
"""
import mulyavin_aa.model.langdetector
api_resp = client.post(
url="/langdetector/detect",
json=mulyavin_aa.model.langdetector.Request(
text='Доброго дня всем котам!').model_dump())
response = mulyavin_aa.model.langdetector.Response.model_validate_json(api_resp.text)
assert api_resp.status_code == 200
assert len(response.langs) > 0
assert response.langs[0].label == 'ru'
def test_langdetector_api_en() -> None:
"""
Тест API определения языка текста EN (mulyavin_aa)
"""
import mulyavin_aa.model.langdetector
api_resp = client.post(
url="/langdetector/detect",
json=mulyavin_aa.model.langdetector.Request(
text='So I checked functions in the class model').model_dump())
response = mulyavin_aa.model.langdetector.Response.model_validate_json(api_resp.text)
assert api_resp.status_code == 200
assert len(response.langs) > 0
assert response.langs[0].label == 'en'
def test_langdetector_api_err() -> None:
"""
Тест API определения языка текста не Ru и En (mulyavin_aa)
Модель не ограничена только Ru и En
"""
import mulyavin_aa.model.langdetector
api_resp = client.post(
url="/langdetector/detect",
json=mulyavin_aa.model.langdetector.Request(
text='').model_dump())
response = mulyavin_aa.model.langdetector.Response.model_validate_json(api_resp.text)
assert api_resp.status_code == 200
assert len(response.langs) > 0
assert response.langs[0].label != 'en'
assert response.langs[0].label != 'ru'
def test_translator_ru_to_en() -> None:
"""
Тест API Перевод текста с языка Ru на En (mulyavin_aa)
"""
import mulyavin_aa.model.translator
api_resp = client.post(
url="/translator/translate",
json=mulyavin_aa.model.translator.Request(
text='Доброго деня всем котам!').model_dump())
response = mulyavin_aa.model.translator.Response.model_validate_json(api_resp.text)
assert api_resp.status_code == 200
assert len(response.text) > 0
assert response.text == 'Good day to all cats!'
def test_translator_en_to_en() -> None:
"""
Тест API Перевод текста с языка En на En (mulyavin_aa)
"""
import mulyavin_aa.model.translator
api_resp = client.post(
url="/translator/translate",
json=mulyavin_aa.model.translator.Request(
text='Good day to all cats!').model_dump())
response = mulyavin_aa.model.translator.Response.model_validate_json(api_resp.text)
assert api_resp.status_code == 200
assert len(response.text) > 0
assert response.text == 'Good day to all cats!'
def test_text_to_speech_ok():
"""
Тест API преобразования текста в речь
"""
response = client.post(
url='/text-to-speech/convert/',
json=kuznetsov_av.api.Request(text='Test').model_dump()
)
assert response.status_code == 200
assert response.json().get('audio') is not None
assert type(response.json().get('audio')) == str
assert len(response.json().get('audio')) > 0
assert response.json().get('sampling_rate') is not None
assert type(response.json().get('sampling_rate')) == int
def test_text_to_speech_error422():
"""
Тест API преобразования текста в речь
"""
response = client.post(
url='/text-to-speech/convert/',
json=''
)
assert response.status_code == 422
def test_root():
response = client.get('/')
assert response.status_code == 200
assert response.json().get('message') is not None
assert len(response.json().get('message')) > 0