0%

Een project dat iemand anders kan uitvoeren · oefening

Houd één hoofdmap voor imports

Houd de projectstructuur eenvoudig. api_catalog.py blijft in de projecthoofdmap, tests blijven in tests/test_api_catalog.py en commando’s starten vanuit die hoofdmap. Voeg geen src/, packagemetadata, bewerkbare installaties, consolescripts of wijzigingen aan sys.path toe: dat zou een nieuwe les over packaging vormen en bestaande gecontroleerde aanroepers stukmaken.

Maak tests/test_api_catalog.py. Gebruik import api_catalog en test daarna via de publieke functies. Bouw kleine namaakobjecten voor antwoorden en sessies in het testbestand. De vervanger legt URL en keywordargumenten vast, geeft door de beoordelaar bepaalde gegevens terug en opent nooit een socket. Behoud een test met tmp_path voor uitvoerbytes en het behoud van herkenbare begininhoud.

Voer tests uit vanuit de hoofdmap:

python -m pytest -q

Als Python api_catalog niet kan importeren, controleer dan de huidige map en ga terug naar de map met zowel api_catalog.py als tests/. Repareer het probleem niet door het zoekpad te wijzigen.

Wat hoort een testmodule te gebruiken?

Opdracht

Maak tests/test_api_catalog.py met api_catalog als enige projectimport, plus de hulpmiddelen uit de standaardbibliotheek en pytest die nodig zijn voor namaaksessies, namaakantwoorden en tmp_path. Behoud het gedrag uit hoofdstuk 11 zonder live HTTP, aanpassingen aan paden, neveneffecten bij importeren of gegenereerde uitvoer in de projecthoofdmap.