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