Der PR fügt pytest fixtures hinzu, welche den click.testing.CliRunner kapseln: runner, cwd. Dadurch werden die Tests etwas übersichtlicher und schmaler.
Aber der eigentliche Grund für den PR war, dass Commands beim CliRunner in Isolation laufen und daher der Parent-Kontext nie ausgeführt wird (questionpy_sdk.__main__.cli). Das war bisher kein Problem, da eh kein Command auf den Kontext zugegriffen hat. isolated_runner mockt den Parent-Context, lässt sich bei Bedarf aber auch direkt im Test überschreiben.
@janbritz Zwei Sachen, die mir aufgefallen sind:
Kleinigkeit: test_index_allows_packages_in_subdirectories war fehlerhaft. Sollte eigentlich n Unterverzeichnisse erstellen, hat aber n mal dasselbe Verzeichnis erstellt.
conftest.create_package war mir irgendwie nicht klar. Das skippt/xfailt tests ("The test will skip if the packaging fails and xfail if the config is invalid." steht im docstring). Das führte dann dazu, dass tests teilweise geskippt/xfailt sind, ohne dass ich es gemerkt habe. Ich denke diese Tests sollten failen, wenn Pakete nicht gebaut werden können. Oder entgeht mir hier etwas?
Der PR fügt pytest fixtures hinzu, welche den
click.testing.CliRunner
kapseln:runner
,cwd
. Dadurch werden die Tests etwas übersichtlicher und schmaler.Aber der eigentliche Grund für den PR war, dass Commands beim
CliRunner
in Isolation laufen und daher der Parent-Kontext nie ausgeführt wird (questionpy_sdk.__main__.cli
). Das war bisher kein Problem, da eh kein Command auf den Kontext zugegriffen hat.isolated_runner
mockt den Parent-Context, lässt sich bei Bedarf aber auch direkt im Test überschreiben.@janbritz Zwei Sachen, die mir aufgefallen sind:
test_index_allows_packages_in_subdirectories
war fehlerhaft. Sollte eigentlich n Unterverzeichnisse erstellen, hat aber n mal dasselbe Verzeichnis erstellt.conftest.create_package
war mir irgendwie nicht klar. Das skippt/xfailt tests ("The test will skip if the packaging fails and xfail if the config is invalid." steht im docstring). Das führte dann dazu, dass tests teilweise geskippt/xfailt sind, ohne dass ich es gemerkt habe. Ich denke diese Tests sollten failen, wenn Pakete nicht gebaut werden können. Oder entgeht mir hier etwas?