Add EvoSync v3 environment scaffold

FastAPI + Celery + Redis + MariaDB stack with 6-service docker-compose.
Includes project skeleton (config, database, models, tasks, migrations)
and health endpoint with passing test.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
mguschin
2026-04-27 23:04:50 +03:00
parent 049e82654d
commit 15a362ca42
19 changed files with 419 additions and 44 deletions

0
tests/__init__.py Normal file
View File

25
tests/conftest.py Normal file
View File

@@ -0,0 +1,25 @@
import pytest
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from web.database import Base
@pytest.fixture(scope="session")
def engine():
eng = create_engine("sqlite:///:memory:", echo=False)
Base.metadata.create_all(eng)
yield eng
Base.metadata.drop_all(eng)
@pytest.fixture
def db_session(engine):
connection = engine.connect()
transaction = connection.begin()
Session = sessionmaker(bind=connection)
session = Session()
yield session
session.close()
transaction.rollback()
connection.close()

12
tests/test_health.py Normal file
View File

@@ -0,0 +1,12 @@
import pytest
from httpx import ASGITransport, AsyncClient
from web.main import app
@pytest.mark.asyncio
async def test_health_returns_ok():
async with AsyncClient(transport=ASGITransport(app=app), base_url="http://test") as client:
resp = await client.get("/health")
assert resp.status_code == 200
assert resp.json() == {"status": "ok"}