docs(generator): путеводитель по генератору и живой проход make demo
- Зачем:
- спека отвечает «почему», а жанра «как пройти устройство по коду»
не было (#48); черновик в generator/README.md ждал выверки.
- Что:
- новый набор docs/architecture/generator/: индекс с целевой картиной
и mermaid-схемой плюс шесть поддокументов по темам тикета.
- демо-модуль и цель make demo: канонический D0, все стадии цепочки
на одном экране; тест-сторож проверяет стадии без прибитых чисел.
- раздел «Как это работает» в generator/README.md сжат до ссылки
на путеводитель, черновая врезка снята.
- Проверка:
- из generator/: make lint, make typecheck, make test (430 passed),
make demo; два слепых ревью и узкая перепроверка — находки закрыты.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
33aef73d0e
commit
0c466c082e
11 files changed
+392
-26
No files matched your search
@@ -0,0 +1,32 @@
|
||||
"""Запускаемый путеводитель остается коротким и проходит всю цепочку."""
|
||||
|
||||
import subprocess
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
def test_demo_runs_and_shows_the_whole_chain() -> None:
|
||||
"""Сторожит команду и стадии, а числа мира оставляет описи."""
|
||||
finished = subprocess.run(
|
||||
["make", "--silent", "demo"],
|
||||
check=False,
|
||||
capture_output=True,
|
||||
cwd=Path(__file__).parents[1],
|
||||
text=True,
|
||||
)
|
||||
|
||||
assert finished.returncode == 0, finished.stderr
|
||||
lines = finished.stdout.splitlines()
|
||||
assert [line.partition(":")[0] for line in lines] == [
|
||||
"Зерно",
|
||||
"Подпотоки D0",
|
||||
"Когорта D0",
|
||||
"Аудитория D0",
|
||||
"Визиты по VisitID",
|
||||
"Строки событий",
|
||||
]
|
||||
assert "когорты D-" in lines[3] and "...D0" in lines[3]
|
||||
assert "строк в группе" in lines[4]
|
||||
assert all(
|
||||
label in lines[5]
|
||||
for label in ("pageview", "add_to_cart", "purchase", "заказов")
|
||||
)
|
||||
Reference in new issue
Block a user