chore(): infrastructure improvements

This commit is contained in:
ITQ
2026-02-12 14:44:25 +03:00
parent 9181d2980a
commit cb9692089f
19 changed files with 134 additions and 270 deletions
+1 -1
View File
@@ -12,7 +12,7 @@ See [services/backend/README.md](../src/backend/README.md#testing).
### Backend service
![backend coverage](../assets/images/backend-coverage.png)
TODO()
## Running e2e tests
-8
View File
@@ -1,8 +0,0 @@
#!/bin/bash
GREEN='\033[1;32m'
NC='\033[0m'
uvx ruff format .
uvx ruff check . --fix
printf "${GREEN}Linters/formatters runned${NC}\n"
@@ -1,52 +0,0 @@
import logging
import time
from http import HTTPStatus as status
from httpx import Client
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
def test_generate_ad_text(client: Client) -> None:
"""
Tests integration between:
- backend
- redis
- yandexgpt
- celery
"""
payload = {
"advertiser_name": "Центральный Университет",
"ad_title": "Всероссийский кейс-чемпионат DEADLINE",
}
response = client.post("/generate/ad_text", json=payload)
assert response.status_code == status.OK
response_data = response.json()
assert "task_id" in response_data, "Missing task_id in response"
task_id = response_data["task_id"]
start_time = time.time()
while True:
result_response = client.get(f"/generate/ad_text/{task_id}/result")
assert result_response.status_code in (status.OK, status.NOT_FOUND)
result_data = result_response.json()
if (
result_data.get("status") == "SUCCESS"
and result_response.status_code == status.OK
):
assert isinstance(result_data.get("result"), str), (
"Result must be a string"
)
elapsed_time = time.time() - start_time
logger.info(
"Task %s completed in %.2f seconds", task_id, elapsed_time
)
logger.info("Generated Ad Text: %s", result_data["result"])
break
time.sleep(1)
+6 -8
View File
@@ -9,15 +9,13 @@ logger = logging.getLogger(__name__)
def test_healthcheck(client: Client) -> None:
"""
Tests integration between:
- redis
- celery
- postgres
- minio
- yandexgpt
Tests integration with:
- valkey
- postgresql
- rustfs
"""
response = client.get("/health?format=json")
response = client.get("/ready?format=json")
assert response.status_code == status.OK
response_data = response.json()
@@ -25,7 +23,7 @@ def test_healthcheck(client: Client) -> None:
unhealthy_services = [
service
for service, status in response_data.items()
if status != "working"
if status != "OK"
]
for service in unhealthy_services: