Initial SFERA platform baseline
This commit is contained in:
@@ -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 == "ОбновитьЦены"
|
||||
Reference in New Issue
Block a user