chore(): infrastructure improvements
This commit is contained in:
+1
-1
@@ -12,7 +12,7 @@ See [services/backend/README.md](../src/backend/README.md#testing).
|
||||
|
||||
### Backend service
|
||||
|
||||

|
||||
TODO()
|
||||
|
||||
## Running e2e tests
|
||||
|
||||
|
||||
@@ -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)
|
||||
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user