scl_skeleton --eplan: E-Planung-Namen auch in den PinStore-Lagerlinien
Sensor und Stopper jeder Lagerlinie (und des Pin-Separators) kommen aus der E-Planung wie bei den Separatorbloecken (scl_context._sep_namen); die Zaehlung der eingesetzten Namen beruecksichtigt die Linien. Dazu die ID-Datei cfg/mubea_tro_ids.ini und .gitignore fuer lokale Claude-Code- Einstellungen. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
77c5aac343
commit
7ec2b88b79
@@ -208,6 +208,35 @@ def test_kontext_setzt_namen_ein_und_loescht_den_merker():
|
||||
assert kontext.eplan_source.startswith("Mubea_positionsdraw.json")
|
||||
|
||||
|
||||
def test_kontext_setzt_namen_auch_in_speicherlinien_ein():
|
||||
"""PinStore_Auto: die Linien sind Separatoren im Layout - ihre E-Planung-Namen
|
||||
kommen in store.lines an (und damit ins PinStore-Template), nicht nur in den
|
||||
Separatorblock."""
|
||||
from model import Analysis, DerivedTro, TroDocument
|
||||
from scl_skeleton import TEMPLATE_DIR, SclTemplates
|
||||
|
||||
linien = ["0066", "0069"]
|
||||
store = DerivedTro(tro_id="TRO04", type_name="PinStore_Auto", label="Speicher",
|
||||
hosts=["0016", "0017"], separators=linien, scanners=[],
|
||||
reason="Test", predecessors=["TRO03"], successors=["TRO05"])
|
||||
punkte = [LayoutPoint("0066", "Separator", 0, 0), LayoutPoint("0069", "Separator", 1000, 0)]
|
||||
geraete = [_dev("BG0766", "IN SEP", 0, 0), _dev("MB0767", "SEP", 0, 300),
|
||||
_dev("BG0769", "IN SEP", 1000, 0), _dev("MB0770", "SEP", 1000, 300)]
|
||||
eplan = EplanDocument(csv_file="mubea.csv", eplan_file="Mubea_positionsdraw.json",
|
||||
assignments=assign(punkte, geraete, [SENSOR, STOPPER], IDENT))
|
||||
document = TroDocument.from_analysis(Analysis(tros=[store]), source="mubea.csv")
|
||||
kontext = build_context(document, "mubea_tro.json", eplan=eplan)
|
||||
|
||||
zeilen = kontext.tros[0].store.lines
|
||||
assert [(z.layout, z.sensor.value, z.stopper.value) for z in zeilen] == [
|
||||
("0066", "cInBG0766", "MB0767"), ("0069", "cInBG0769", "MB0770")]
|
||||
assert not any(n.todo for z in zeilen for n in (z.sensor, z.stopper))
|
||||
|
||||
text = SclTemplates(TEMPLATE_DIR).render(kontext.tros[0])
|
||||
assert '#TRO04.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG0766"];\n' in text
|
||||
assert '"MB0770" := #TRO04.arOutSeparatorStore[2];\n' in text
|
||||
|
||||
|
||||
def _lauf(tmp_path, monkeypatch, eplan: EplanDocument,
|
||||
*weitere: str) -> tuple[int, Path]:
|
||||
shutil.copy(FIXTURES / "mubea_tro.json", tmp_path / "mubea_tro.json")
|
||||
|
||||
Reference in New Issue
Block a user