fix(test): die detection-Attrappe muss auch das PAKET-Attribut ersetzen
Ampel / ampel (push) Successful in 54s

Ampel-Lauf 186: Die 28 echten Linux-Fehler waren weg, uebrig blieben fuenf
— alle in meinem neuen Test:

    TypeError: drive_status() missing 1 required positional argument

`from rippy.drives import detection` sieht zuerst im PAKET nach
(`_handle_fromlist` prueft `hasattr`) und greift erst dann auf sys.modules
zurueck. Auf Linux ist das echte Modul dort laengst gesetzt, weil es
importierbar ist — die Attrappe blieb wirkungslos, und der Test lief in die
echten Funktionen.

Unter Windows fiel das nicht auf: Dort gibt es das Attribut mangels fcntl
gar nicht, also griff sys.modules. Derselbe Test, zwei Plattformen, zwei
Ergebnisse — genau die Sorte Luecke, die dieser Test eigentlich schliessen
soll.

Jetzt werden beide ersetzt. Gegengeprueft: mit kaputter Durchreiche fuenf
Fehlschlaege, danach wieder gruen.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Hitonabi
2026-08-28 12:44:05 +02:00
co-authored by Claude Opus 5
parent bfc0cada62
commit ca212ff835
+11
View File
@@ -103,12 +103,23 @@ def test_linux_treiber_reicht_die_detection_funktionen_durch(name, monkeypatch):
"""
import types
import rippy.drives
from rippy.drives import linux
attrappe = types.ModuleType("rippy.drives.detection")
for wie_es_heisst in AUS_DETECTION:
setattr(attrappe, wie_es_heisst,
lambda *a, _n=wie_es_heisst, **k: _n)
# BEIDES ersetzen, nicht nur sys.modules. `from rippy.drives import
# detection` sieht zuerst im PAKET nach (`_handle_fromlist` prueft
# `hasattr`) und greift erst dann auf sys.modules zurueck. Auf Linux ist
# das echte Modul dort laengst gesetzt, weil es importierbar ist — die
# Attrappe blieb wirkungslos und der Test lief in die echten Funktionen
# (Ampel-Lauf 186: `TypeError: drive_status() missing 1 required
# positional argument`). Unter Windows fiel das nicht auf: Dort gibt es
# das Attribut mangels `fcntl` gar nicht.
monkeypatch.setattr(rippy.drives, "detection", attrappe, raising=False)
monkeypatch.setitem(sys.modules, "rippy.drives.detection", attrappe)
durchgereicht = getattr(linux, name, None)