|
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 |
|
|