52 lines
2.4 KiB
Python
52 lines
2.4 KiB
Python
#!/usr/bin/env python3
|
|
"""Фейковая Eva для сквозного прогона (scripts/e2e-hub.sh): дерево из 5 страниц, версии DOC-1/DOC-2, картинка и файл;
|
|
SIGUSR1 — опубликовать DOCH-14.
|
|
|
|
Печатает «PORT <порт>» и работает до сигнала. Использует tests/fake_eva.py; токен Eva — первым аргументом.
|
|
"""
|
|
import os
|
|
import signal
|
|
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)
|
|
eva.add_version(1, "DOCH-11", "2026-10-27T10:00:00+03:00", "<p>корень v1</p>")
|
|
eva.add_version(1, "DOCH-12", "2026-10-27T11:00:00+03:00", "<p>корень</p>")
|
|
eva.add_version(1, "DOCH-13", "2026-10-27T12:00:00+03:00", "<p>черновик</p>", has_published=False)
|
|
eva.add_version(2, "DOCH-21", "2026-10-26T10:00:00+03:00", img)
|
|
|
|
|
|
def publish_more(eva: FakeEva) -> None:
|
|
"""Новая опубликованная версия DOC-1 — для проверки догрузки истории."""
|
|
eva.add_version(1, "DOCH-14", "2026-10-28T09:00:00+03:00", "<p>корень v3</p>")
|
|
print("VERSION DOCH-14", flush=True)
|
|
|
|
|
|
def main() -> int:
|
|
eva = FakeEva()
|
|
if len(sys.argv) > 1:
|
|
eva.token = sys.argv[1]
|
|
build(eva)
|
|
signal.signal(signal.SIGUSR1, lambda *_: publish_more(eva))
|
|
print("PORT %d" % eva.server.server_port, flush=True)
|
|
threading.Event().wait()
|
|
return 0
|
|
|
|
|
|
if __name__ == "__main__":
|
|
sys.exit(main())
|