Initial SFERA platform baseline
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
from sir import EdgeKind, NodeKind, SemanticEdge, SemanticNode, SirSnapshot, SourceRef
|
||||
from ui_semantics import form_semantics
|
||||
|
||||
|
||||
def test_form_semantics_groups_commands_and_elements():
|
||||
form = SemanticNode(
|
||||
semantic_id="form.main",
|
||||
lineage_id="lineage.form.main",
|
||||
kind=NodeKind.FORM,
|
||||
name="ФормаДокумента",
|
||||
qualified_name="Документ.Заказ.ФормаДокумента",
|
||||
source_ref=SourceRef(source_path="form.xml"),
|
||||
)
|
||||
command = SemanticNode(
|
||||
semantic_id="command.post",
|
||||
lineage_id="lineage.command.post",
|
||||
kind=NodeKind.COMMAND,
|
||||
name="Провести",
|
||||
qualified_name="Документ.Заказ.ФормаДокумента.Провести",
|
||||
source_ref=SourceRef(source_path="form.xml"),
|
||||
)
|
||||
snapshot = SirSnapshot(
|
||||
snapshot_id="snapshot.ui",
|
||||
project_id="demo",
|
||||
nodes=[
|
||||
form,
|
||||
command,
|
||||
SemanticNode(
|
||||
semantic_id="procedure.post",
|
||||
lineage_id="lineage.procedure.post",
|
||||
kind=NodeKind.PROCEDURE,
|
||||
name="ПровестиКоманда",
|
||||
qualified_name="Module.ПровестиКоманда",
|
||||
source_ref=SourceRef(source_path="module.bsl"),
|
||||
),
|
||||
],
|
||||
edges=[
|
||||
SemanticEdge(
|
||||
edge_id="edge.command",
|
||||
kind=EdgeKind.HAS_COMMAND,
|
||||
source_lineage=form.lineage_id,
|
||||
target_lineage=command.lineage_id,
|
||||
),
|
||||
SemanticEdge(
|
||||
edge_id="edge.handler",
|
||||
kind=EdgeKind.HANDLES,
|
||||
source_lineage=command.lineage_id,
|
||||
target_lineage="lineage.procedure.post",
|
||||
),
|
||||
],
|
||||
)
|
||||
|
||||
forms = form_semantics(snapshot)
|
||||
|
||||
assert forms[0].commands[0].name == "Провести"
|
||||
assert forms[0].command_handlers[command.lineage_id].name == "ПровестиКоманда"
|
||||
Reference in New Issue
Block a user