Automatischer Push: 6 Datei(en) geändert

- .vault-tools/plan-kopie/LIESMICH.md
- .vault-tools/plan-kopie/rot_nachweis.py
- .vault-tools/trading-plattform-pruefung/LIESMICH.md
- .vault-tools/trading-plattform-pruefung/browser_r.py
- .vault-tools/trading-plattform-pruefung/start_probe_w.py
- .vault-tools/trading-plattform-pruefung/start_probe_zugang.py

Erzeugt vom PostToolUse-Hook .vault-tools/auto-push/auto_push.py.

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
Pascal MichelandClaude Opus 5 committed 2026-09-23 04:00:01 +02:00
1 parent 593acdd122
commit d7ffc9a5b5
6 files changed
+233 -5

No files matched your search

+27 -4
View File
@@ -12,6 +12,14 @@ Dann laufen die Testdateien des Tasks. Es tut etwas und berichtet; das Urteil fa
Geltungsbereich und Luecken:
- Testdateien sind Zieldateien unter tests/ sowie *.test.ts und *.test.tsx; alles unter tests/fixtures/
gilt als Testseite und bleibt stehen. Alles andere ist produktiv.
- tests/conftest.py gilt als PRODUKTIVSEITE und wird zurueckgesetzt (Projektvorgabe seit 2026-09-22):
Liegt die Korrektur eines Tasks selbst in conftest.py (Trading Plattform, Task 369: die Ersatzfunktionen
der Netzsperre), wendete das Skript sie im Lauf "ohne Umsetzung" mit an und meldete GRUEN -- der eine
Zustand, in dem der Nachweis nichts misst, sah aus wie ein sauberer Befund. Liegt dagegen eine neue
Fixture des Tasks in conftest.py (Task 368), fehlt sie jetzt im Lauf und die neuen Tests enden als
Sammelfehler -- das ist ROT mit "fixture ... not found" in der ersten Fehlerzeile, also sichtbar.
Wer diesen Fall hat, ruft mit --conftest-als-test auf; dann gilt conftest.py wie frueher als Testdatei.
Das Skript sagt je Task, wie es conftest.py behandelt hat.
- Python-Tests laufen in WSL (Debian, ~/venvs/trading), Oberflaechentests unter Windows mit npx vitest;
dafuer setzt das Skript eine Junction auf das node_modules des Projekts und loest sie vor dem Loeschen.
- Erzeugte Fixtures (der Plan laesst sie mit altem Code erzeugen) holt --fixturen aus einem Ordner nach,
@@ -20,8 +28,9 @@ Geltungsbereich und Luecken:
- Die Basis ist eine Kopie, die der Aufrufer VOR der ersten Welle gezogen hat; das Skript fasst das
Projekt selbst nie an.
Aufruf: python rot_nachweis.py <basis-kopie> <planordner> <arbeitsordner> <spec.json> [--fixturen <ordner>] [--node-modules <pfad>]
Aufruf: python rot_nachweis.py <basis-kopie> <planordner> <arbeitsordner> <spec.json> [--fixturen <ordner>] [--node-modules <pfad>] [--conftest-als-test]
--node-modules nennt das node_modules des Projekts, wenn die Basis-Kopie keines traegt.
--conftest-als-test laesst tests/conftest.py als Testdatei stehen (nur, wenn die neue Fixture des Tasks dort liegt).
spec.json: [{"task": "task-141-....md", "vor": ["task-...md", ...]}, ...]
"""
@@ -37,6 +46,7 @@ from pathlib import Path
HIER = Path(__file__).resolve().parent
ZIEL = re.compile(r"^- `(.+?)`")
PROJEKTNAME = "trading-plattform/"
CONFTEST = "tests/conftest.py"
def zieldateien(taskdatei: Path) -> list[str]:
@@ -59,7 +69,11 @@ def zieldateien(taskdatei: Path) -> list[str]:
return ziele
def ist_test(pfad: str) -> bool:
def ist_test(pfad: str, conftest_als_test: bool = False) -> bool:
if pfad == CONFTEST:
# Vorgabe: produktiv. Sonst wendet der Lauf "ohne Umsetzung" eine Korrektur an, die in
# conftest.py liegt, und meldet gruen (siehe Kopfkommentar).
return conftest_als_test
return pfad.startswith("tests/") or pfad.endswith((".test.ts", ".test.tsx"))
@@ -105,6 +119,10 @@ def main() -> int:
stelle = argumente.index("--node-modules")
node_modules_arg = Path(argumente[stelle + 1])
del argumente[stelle : stelle + 2]
conftest_als_test = False
if "--conftest-als-test" in argumente:
conftest_als_test = True
argumente.remove("--conftest-als-test")
if len(argumente) != 4:
print(__doc__)
return 3
@@ -134,9 +152,14 @@ def main() -> int:
print(f"{task}: ANWENDEN GESCHEITERT: {fehler[-300:]}")
continue
ziele = zieldateien(planordner / task)
tests = [z for z in ziele if ist_test(z) and not z.startswith("tests/fixtures/")]
tests = [z for z in ziele if ist_test(z, conftest_als_test) and not z.startswith("tests/fixtures/")]
if CONFTEST in ziele:
# Sichtbar machen, was mit conftest.py geschah -- der Koordinator liest die erste Fehlerzeile
# anders, wenn eine Fixture fehlt, als wenn eine Korrektur zurueckgesetzt wurde.
wie = "als Testdatei stehen gelassen (--conftest-als-test)" if conftest_als_test else "als Produktivseite auf den Stand vor dem Task zurueckgesetzt"
print(f"{task}: Hinweis: {CONFTEST} {wie}")
for ziel in ziele:
if ist_test(ziel):
if ist_test(ziel, conftest_als_test):
if not (rot / ziel).exists() and fixturen is not None and (fixturen / Path(ziel).name).is_file():
(rot / ziel).parent.mkdir(parents=True, exist_ok=True)
shutil.copyfile(fixturen / Path(ziel).name, rot / ziel)