B4-1: Test coverage — критичные пути (recommend / analyze / concepts) #68

Closed
opened 2026-05-11 20:35:12 +00:00 by lekss361 · 0 comments
lekss361 commented 2026-05-11 20:35:12 +00:00 (Migrated from github.com)

Эшелон: ⚙️ Backend API quality

Зачем

Сейчас 2 теста: test_health.py + test_concepts_stub.py. Нет тестов для analytics_queries, recommend_mix, analyze_parcel. При рефакторинге легко сломать незаметно. Для due diligence нужен видимый coverage.

Что сделать

  • tests/services/test_analytics_queries.py — smoke tests для market_pulse / quartirography / recommend_mix (fixture данные)
  • tests/api/test_parcels_analyze.py — mock PostGIS + проверка scoring логики
  • tests/services/test_generative_geometry.py — когда B1-2 готов (площадь корпусов внутри участка, нет коллизий)
  • tests/services/test_objective_etl.py — parsing JSONL fixtures
  • CI: pytest --cov=app --cov-report=xml, fail если coverage <30% (постепенно поднимать)
  • Codecov или Coveralls badge в README

Acceptance

  • >20 тестов, coverage >30% начальный baseline
  • CI fails если coverage падает
  • Badge в README

Owner

backend-engineer

Effort

~3 дня

**Эшелон:** ⚙️ Backend API quality ## Зачем Сейчас 2 теста: `test_health.py` + `test_concepts_stub.py`. Нет тестов для `analytics_queries`, `recommend_mix`, `analyze_parcel`. При рефакторинге легко сломать незаметно. Для due diligence нужен видимый coverage. ## Что сделать - `tests/services/test_analytics_queries.py` — smoke tests для market_pulse / quartirography / recommend_mix (fixture данные) - `tests/api/test_parcels_analyze.py` — mock PostGIS + проверка scoring логики - `tests/services/test_generative_geometry.py` — когда B1-2 готов (площадь корпусов внутри участка, нет коллизий) - `tests/services/test_objective_etl.py` — parsing JSONL fixtures - CI: `pytest --cov=app --cov-report=xml`, fail если coverage <30% (постепенно поднимать) - Codecov или Coveralls badge в README ## Acceptance - [ ] >20 тестов, coverage >30% начальный baseline - [ ] CI fails если coverage падает - [ ] Badge в README ## Owner `backend-engineer` ## Effort ~3 дня
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lekss361/gendesign#68
No description provided.