Verbindungszeit, Gesamtdauer und fehlende Daten als verschiedene Verträge behandeln.
Ein Verbindungstimeout begrenzt den Aufbau einer Verbindung; es ist keine automatische Gesamtlaufzeitgrenze für jede spätere Operation. Ein Transportadapter sollte Text, Fehler und Timeout unterscheidbar zurückgeben. Erst eine separate Auswertung entscheidet, ob ein gültiger bekannter Datensatz, ein gültiger unbekannter Typ oder ungültige Daten vorliegen. Diese Trennung erlaubt Tests ohne Verbindung. Für die Ausgabe erzeugt ein JSON-Serializer die korrekte Darstellung von Anführungszeichen und Steuerzeichen. Eine handgebaute Zeichenkette kann selbst aus einem harmlosen Modellnamen ungültiges JSON machen. Fehlende Werte werden als fehlend behandelt, statt sie stillschweigend zu erfinden.
Ein Beispiel
Der Fake liefert erst timeout: Die Erkennung hat kein Ergebnis. Danach liefert er name='Werkstatt "Nord"' und zwei gefundene Paketmanager. Das Modell hält beide Kandidaten fest und meldet eine offene Auswahl, falls der Vertrag genau einen verlangt. json.dumps erzeugt für den Namen gültiges JSON, ohne eine eigene Kette von Ersetzungen.