#!/usr/bin/env python3 """Фейковая Eva для сквозного прогона (scripts/e2e-hub.sh): дерево из 5 страниц, картинка и файл. Печатает «PORT <порт>» и работает до сигнала. Использует tests/fake_eva.py; токен Eva — первым аргументом. """ import os import sys import threading sys.path.insert(0, os.path.join(os.path.dirname(os.path.abspath(__file__)), "..", "tests")) from fake_eva import FakeEva # noqa: E402 PNG = bytes.fromhex("89504e470d0a1a0a") + b"e2e-attachment-content" def build(eva: FakeEva) -> None: img = '

Схема:

Схема' eva.add_doc(1, "DOC-1", "Корень e2e", project="E2E", text="

корень

") eva.add_doc(2, "DOC-2", "Требования", parent="DOC-1", project="E2E", orderno=1, text=img) eva.add_doc(3, "DOC-3", "Процессы", parent="DOC-1", project="E2E", orderno=2, text='

см. требования

') eva.add_doc(4, "DOC-4", "Подпроцесс", parent="DOC-3", project="E2E", text="

подпроцесс

") eva.add_doc(5, "DOC-5", "Приложение", parent="DOC-1", project="E2E", orderno=3, text="

приложение

") eva.add_file("/files/obj/e2e/scheme.png", PNG) def main() -> int: eva = FakeEva() if len(sys.argv) > 1: eva.token = sys.argv[1] build(eva) print("PORT %d" % eva.server.server_port, flush=True) threading.Event().wait() return 0 if __name__ == "__main__": sys.exit(main())