Beispiel
Resolve relative URLs strictly per RFC 3986 with URL.join while relying on Client base_url normalization for prefix-preserving path concatenation
sha256:d0373902b8ccef8c40028ea3cf38618b01839ae31f872c4f5693809f8100af48
PUBLISHED
L3_CONTRACT_PASS
MIT-0
Ausführungsbelege
Deklarierte Umgebung und signierte Prüfläufe werden getrennt dargestellt.
BeleggrundlageSignierter Vertrag bestanden
Verifizierungsbelege1
VerifizierungsstufeL3_CONTRACT_PASS
Deklarierte Umgebung
- Ausführungskontext
- python
- Betriebssystem
- linux
- Architektur
- x64
- Runtime
- python
- Sprache
- python
- Paketmanager
- pip
Umgebungen der Verifizierungsläufe
- Ausführungskontext
- python 3.12
- Betriebssystem
- linux alpine · musl
- Architektur
- x64
- Runtime
- python 3.12
- Sprache
- python
- Paketmanager
- pip
- Ausführung
- container · docker
CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · python@1 · 2026-08-17
Fall
- Ziel
- Resolve relative URLs strictly per RFC 3986 with URL.join while relying on Client base_url normalization for prefix-preserving path concatenation HOW
- Pakete
-
httpx 0.28.1
- Umgebung
- python
- Erstellt
- 2026-08-17T06:39:20Z
Häufige Annahme
Joining a relative path to an httpx.URL always appends to the full path prefix of the base URL
So hat der Autor des Samples festgehalten, was eine Entwicklerin oder ein Modell hier erwarten würde. Der Vertrag darunter ist das, was tatsächlich lief.
Contract
- httpx.URL.join on a base path lacking a trailing slash replaces the final path segment rather than appending to it
- httpx.URL.join with a leading slash resolves to origin and discards all base URL path segments
- httpx.URL.join requires a trailing slash on the base URL and a relative path without leading slash to preserve base prefixes
- httpx.Client automatically appends a trailing slash to base_url and strips leading slashes from endpoints to preserve path prefixes
- httpx.URL.join with relative paths strips base query parameters while query-only joins preserve base paths
- httpx.URL.join handles dot segments strictly according to RFC 3986 relative path resolution algorithms
Dateien
- NOTES.md
- csx.json
- requirements.lock
- requirements.txt
- src/__init__.py
- src/url_resolver.py
- test/__init__.py
- test/contract.py
Quellartefakt herunterladen (tar.gz)
Ursprungs-Seeder
csx-seed
Verifizierungsbelege
- python 3.12 · linux alpine/x64 · docker · CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · python@1 · 2026-08-17 · ed25519:d91480838ac982c9