6 Commits
Author SHA1 Message Date
Claude 18a974d7d3 Remove redundant _abs_path() wrapper in LoadDescriptionNode (closes #16)
_abs_path() was a one-liner that only delegated to normalize_description_path().
Removed the wrapper and replaced all call sites with direct calls to
normalize_description_path(). Removed the now-redundant TestAbsPath test class
(covered by TestNormalizeDescriptionPath in test_file_utils.py).

https://claude.ai/code/session_01JBWyFr5shvPXUPmZkX3Nhg
2026-03-23 18:16:37 +00:00
Claude 739e90ec11 test(#9): Verbleibende Unit-Tests für beide Nodes ergänzen
LoadDescriptionNode:
- TestListAllDescriptionFiles: flache und verschachtelte Dateien, Sortierung
- TestIsChanged: gibt String zurück, erkennt Dateiänderungen, Fallback bei Fehler

RandomLineFromText (bereits in Commit refactor(#6) angelegt):
- Seed-Reproduzierbarkeit, mehrere Dateien, leere Dateien, leere Pfade

Insgesamt 38 Tests, alle grün.

Closes #9
2026-03-23 13:37:35 +00:00
Claude 0b5188a4a0 refactor(#5): Doppelte Fallback-Logik in _resolve_file_path extrahieren
- Neue statische Methode _resolve_file_path() in LoadDescriptionNode:
  gibt file_path zurück oder fällt auf ersten verfügbaren Eintrag zurück
- IS_CHANGED() und load_description() delegieren an _resolve_file_path()
  statt die Fallback-Logik zu duplizieren
- 4 neue Tests für alle Fallback-Szenarien (leer, None, "undefined", gesetzt)

Closes #5
2026-03-23 13:35:50 +00:00
Claude b6cc844ce3 refactor(#7): Gemeinsame Datei-Utilities in file_utils.py extrahieren
- file_utils.py angelegt mit: read_text_file(), read_random_line(),
  normalize_description_path()
- load_description_node.py: _abs_path() delegiert an normalize_description_path(),
  load_description() nutzt read_text_file()
- feroc_node.py: get_random_lines() nutzt read_random_line() mit lokalem
  random.Random(seed) statt globalem random.seed()
- tests/test_file_utils.py: 12 Tests für alle file_utils-Funktionen
- tests/test_load_description_node.py: monkeypatch auf file_utils.DESCRIPTION_PATH
  ergänzt für korrekte Test-Isolation

Closes #7
2026-03-23 13:34:58 +00:00
Claude 533c7a4f05 test(#4): Integration-Tests für _abs_path .txt-Extension absichern
Dokumentiert die Behebung des Bugs (aus Issue #3): Die korrekte
_abs_path()-Version hängt .txt an, sodass load_description() Dateien
zuverlässig findet und liest.

Tests:
- Lesen einer vorhandenen .txt-Datei
- Leeres Tuple bei fehlender Datei
- Pfad ohne Extension funktioniert identisch
- Verschachtelte Dateien in Unterordnern

Closes #4
2026-03-23 13:31:57 +00:00
Claude e13c7dbfc4 fix(#3): Doppelte Methodendefinitionen in LoadDescriptionNode entfernen
- Zweite (schwächere) Definition von _abs_path() und IS_CHANGED() entfernt;
  die erste, korrekte Version (mit .txt-Handling und Backslash-Normalisierung) bleibt
- __init__.py mit try/except für relative Imports gesichert (pytest-Kompatibilität)
- pytest-Setup eingerichtet: pytest.ini, conftest.py, tests/test_load_description_node.py
- .gitignore um __pycache__ und .pytest_cache erweitert

Closes #3
2026-03-23 13:31:16 +00:00