Initial SFERA platform baseline

This commit is contained in:
2026-05-16 19:03:49 +03:00
commit 3b845c8fce
282 changed files with 55045 additions and 0 deletions
@@ -0,0 +1,43 @@
from pathlib import Path
from job_topology import ScheduledJob, bind_jobs, snapshot_scheduled_jobs
from sir import EdgeKind
from semantic_kernel import index_project
def test_bind_jobs_to_routines(tmp_path: Path):
module = tmp_path / "jobs.bsl"
module.write_text("Процедура ОбновитьЦены()\nКонецПроцедуры\n", encoding="utf-8")
snapshot = index_project(tmp_path, project_id="demo")
bindings = bind_jobs(
snapshot,
[ScheduledJob(job_id="job.1", name="Обновление цен", routine_name="ОбновитьЦены")],
)
assert bindings[0].routine is not None
assert bindings[0].routine.name == "ОбновитьЦены"
def test_snapshot_scheduled_jobs_bind_xml_job_to_routine(tmp_path: Path):
xml = tmp_path / "metadata.xml"
xml.write_text(
"""
<Configuration>
<ScheduledJob name="ОбновлениеЦен" qualifiedName="РегламентноеЗадание.ОбновлениеЦен" method="ОбновитьЦены" schedule="КаждыйДень" />
</Configuration>
""",
encoding="utf-8",
)
module = tmp_path / "CommonModules" / "РегламентныеОперации" / "Module.bsl"
module.parent.mkdir(parents=True)
module.write_text("Процедура ОбновитьЦены()\nКонецПроцедуры\n", encoding="utf-8")
snapshot = index_project(tmp_path, project_id="jobs")
bindings = snapshot_scheduled_jobs(snapshot)
assert any(edge.kind == EdgeKind.RUNS for edge in snapshot.edges)
assert bindings[0].job.name == "ОбновлениеЦен"
assert bindings[0].job.schedule == "КаждыйДень"
assert bindings[0].routine is not None
assert bindings[0].routine.name == "ОбновитьЦены"