questionpy-org / questionpy-sdk

Library and toolset for the development of QuestionPy packages
https://questionpy.org
MIT License
0 stars 2 forks source link

test: refactor `click.testing.CliRunner` as a fixture #79

Closed tumidi closed 3 months ago

tumidi commented 3 months ago

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:

  1. Kleinigkeit: test_index_allows_packages_in_subdirectories war fehlerhaft. Sollte eigentlich n Unterverzeichnisse erstellen, hat aber n mal dasselbe Verzeichnis erstellt.
  2. 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?