Die benötigten Besucherwege prüfen

PythonBeginner
Jetzt üben

Einführung

FIELDNOTES ist ein kleines Demonstrationsmuseum. Besucher erkunden eine Ausstellung, finden den Eingang und laden einen Führer zum Offline-Lesen herunter. Vor einer Änderung brauchst du Prüfungen, die einen vollständigen Besuch erkennen und über eine erfolgreiche Startseitenantwort hinausgehen.

Du ergänzt einen kleinen Python-Test, zeigst, dass er ein funktionierendes Paket akzeptiert, und weist fehlende oder irreführende Downloads zurück. Grundlegende Terminalkenntnisse genügen; die benötigten Python- und HTTP-Details werden erklärt. Du musst weder die Website entwickeln noch Software installieren oder ein externes Konto anlegen. Museum und Adresse sind erfunden.

Live Website ist die aktuelle Website auf Port 8081. Candidate Preview ist eine unabhängige Vorschau auf Port 8082. Workstation ist das vorbereitete Terminal in /home/labex/project/release-gate. Jede Einheit beginnt unabhängig; Vorschauen ändern die veröffentlichte Website niemals.

Den vollständigen Besucherweg prüfen

In diesem Schritt machst du aus einer tatsächlichen Besucheranforderung eine automatische Prüfung und zeigst, dass sie gute und fehlerhafte Pakete unterscheidet. Beginne in Live Website.

Den normalen Dienst kennenlernen

Öffne Explore the exhibition ↗, lies Close to home und wähle Plan your visit ↗. Die Besuchsseite zeigt Entrance: East gate. Wähle Download visitor guide ↓ und öffne den heruntergeladenen Text: Auch er muss Entrance: East gate enthalten. Ein Download ist eine vom Browser gespeicherte Datei; ihr Speicherort hängt von den Download-Einstellungen ab. Kehre über FIELDNOTES zur Startseite zurück. Öffne außerdem Visit und Step-free route ↗; die Zugangsseite und ihr Download beschreiben Garden ramp. Diese Funktionen müssen erhalten bleiben.

Wechsle zu Workstation. ls listet die Namen eines Verzeichnisses auf; cat zeigt eine Datei an:

ls

Du solltest packages, drafts, live, preview, tests.py, pipeline.sh und tools.py finden. Ein Paket ist eine gespeicherte Dateisammlung; .tar.gz bezeichnet ihr komprimiertes Archivformat. drafts/ ist eine bearbeitbare Arbeitskopie. tools.py ist der bereitgestellte lokale Runner, kein gehosteter CI-Dienst.

cat tests.py

HTTP ist das Anfrage-Antwort-Protokoll des Browsers. 200 bezeichnet eine erfolgreiche Antwort; 404 bedeutet, dass die angeforderte Ressource fehlt. Ein 200 mit dem falschen Eingang ist trotzdem ein fachlicher Fehler. Ein Verbindungsfehler bedeutet, dass keine brauchbare Antwort eingetroffen ist.

Die Inhaltsprüfung ergänzen

python3 führt Python-Code aus. Die bereitgestellte Funktion read(base, path) fordert den Pfad an und liefert dessen Text zurück. base ist die vom Runner gewählte Adresse des temporären Servers. def definiert eine Funktion; eingerückte Zeilen gehören zu ihr. with schließt die Antwort nach dem Lesen. assert condition, 'message' löst bei einer falschen Bedingung einen Fehler aus. in prüft, ob der erwartete Text in der Antwort vorkommt. Text in Anführungszeichen ist wörtlich. = weist einen Wert zu; + verbindet Text. Du musst nur die fehlende Assertion für den Besucherführer ergänzen; für eine verlässliche Bearbeitung steht hier die gesamte kleine Datei.

cat > tests.py ersetzt die Datei. <<'PYTHON' beginnt ein Here-Dokument: Füge den gesamten Block bis zum letzten PYTHON auf einer eigenen Zeile ein. Die Anführungszeichen erhalten den Code unverändert. Übernimm die Einrückung genau:

cat > tests.py <<'PYTHON'
from urllib.request import urlopen

def read(base, path):
    with urlopen(base + path, timeout=3) as response:
        assert response.status == 200, 'Expected HTTP 200: ' + path
        return response.read().decode('utf-8')

def check(base):
    home = read(base, '/')
    assert 'FIELDNOTES' in home, 'Missing museum homepage'
    assert 'href="/visit.html"' in home, 'Missing visit link'
    visit = read(base, '/visit.html')
    assert 'Entrance: East gate' in visit, 'Wrong entrance on visit page'
    assert 'href="downloads/guide.txt"' in visit, 'Missing visitor download link'
    guide = read(base, '/downloads/guide.txt')
    assert 'Entrance: East gate' in guide, 'Wrong visitor guide content'
PYTHON

Die Seite verwendet href="downloads/guide.txt", einen relativen Link. Von /visit.html aus ergibt sich /downloads/guide.txt. Ein mit / beginnender Link startet an der Website-Wurzel. Prüfe sowohl den tatsächlichen Link als auch den Zielinhalt; eine andere, unbenutzte URL könnte den wirklichen Besucherfehler übersehen.

Den Test prüfen, bevor du ihm vertraust

Die Runner-Aktion check entpackt ein Paket in ein temporäres Verzeichnis, startet einen echten HTTP-Server und ruft check(base) auf. Sie speichert die erfolgreich geprüften Bytes für später. Sie veröffentlicht oder repariert das Paket nicht:

python3 tools.py check packages/reference.tar.gz

Erwarte PASS: visitor checks. Frozen package .... Die Kennung am Ende variiert. Meldet Python SyntaxError oder IndentationError, ist der Test selbst fehlerhaft. Schreibe den Block erneut und prüfe zunächst die bekannte funktionierende Referenz, bevor du einen Kandidaten beurteilst.

Führe zwei beabsichtigte Fehlerfälle aus:

python3 tools.py check packages/missing.tar.gz

Erwarte FAIL: HTTP Error 404: File not found: Der Download fehlt. Arbeite im selben Terminal weiter; der Fehler schließt es nicht.

python3 tools.py check packages/wrong.tar.gz

Erwarte FAIL: Wrong visitor guide content. Dieser Kandidat liefert 200, führt Besucher aber zum falschen Eingang. Lösche die Assertion nicht, um ihn bestehen zu lassen. Ein Test, der die Referenz ablehnt oder diesen Kandidaten annimmt, ist nicht brauchbar.

Mit den Browserbeobachtungen vergleichen

preview wählt nur die Dateien für Candidate Preview aus:

python3 tools.py preview packages/wrong.tar.gz

Wechsle zu Candidate Preview und lade neu. Öffne die Ausstellung und dann Plan your visit. Die Seite nennt weiterhin East gate, der heruntergeladene Führer jedoch West gate. Dieser Unterschied zeigt den Sinn der Inhaltsprüfung.

Kehre zu Workstation zurück und wähle die Vorschau des guten Kandidaten:

python3 tools.py preview packages/candidate.tar.gz

Gehe in Candidate Preview zur Startseite, lade neu und wiederhole Besuch und Download; beide nennen jetzt East gate. In Live Website funktioniert die ursprüngliche Seite weiterhin. Du hast das fachliche Verhalten geprüft, ohne einen schlechten Kandidaten zu veröffentlichen. Ein Browserdownload führt die automatische Prüfung nicht aus; beide Beobachtungen liefern unterschiedliche Belege.

Zusammenfassung

Du hast den Besucherweg geprüft, eine Inhaltsassertion ergänzt und einen fehlenden Download von einer erfolgreichen Antwort mit falschem Inhalt unterschieden. Die veröffentlichte Website blieb unverändert.