eva-agent/scripts/fake_eva_serve.py
Andrey Epifancev acdd52742e check, README, сквозной прогон с хабом (#1)
cmd_check проверяет хаб и Eva (код 0 или 3), флаг run --once,
scripts/e2e-hub.sh поднимает тестовый хаб во временном JIRA_HUB_HOME.
Решения 33–35 в design.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 05:32:32 +04:00

39 lines
1.6 KiB
Python

#!/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 = '<p>Схема:</p><img alt="Схема" src="/files/obj/e2e/scheme.png">'
eva.add_doc(1, "DOC-1", "Корень e2e", project="E2E", text="<p>корень</p>")
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='<p>см. <a href="/project/Document/DOC-2">требования</a></p>')
eva.add_doc(4, "DOC-4", "Подпроцесс", parent="DOC-3", project="E2E", text="<p>подпроцесс</p>")
eva.add_doc(5, "DOC-5", "Приложение", parent="DOC-1", project="E2E", orderno=3, text="<p>приложение</p>")
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())