Repository navigation
test: pin the public gameDisplay attribute on both constructor paths - #49
Merged
Merged
Conversation
Consumers such as Apex read graphik.gameDisplay directly rather than calling getGameDisplay(), so the attribute name is part of the public contract. No existing test referenced it: renaming it to a private name left the whole suite green. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Member
Author
|
Self-review rubric (single intrinsic pass; anchored on CI and a mutation check):
Findings:
Summary: this change is a test-only contract pin with empirical evidence that it catches the regression it targets. It is ready to merge. This review was drafted during a Gardener session (https://github.com/Stephenson-Software/gardener). drafted by Claude on behalf of Daniel Stephenson |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Stage B (unit-test expansion) cycle, scoped to the
Graphikconstructor contract.test_game_display_attribute_is_the_bound_surface, parametrized over the supplied-display and default-display constructor paths.gameDisplayattribute is read directly by consumers (Apex sizes its layout offgraphik.gameDisplay.get_size()), so its name is part of the public contract. Before this change no test referenced it: every existing test went throughgetGameDisplay().graphik.py, the README, and the version source are untouched.Evidence the test guards something
With
self.gameDisplaytemporarily renamed toself._gameDisplayingraphik.py, the existing 58 tests all still passed and only the two new cases failed:With the source restored, the suite is 60 passed.
Test plan
python3 -m py_compile src/main/python/preponderous/graphik/graphik.pypreponderous.graphik.graphikpython3 -m pytest— 60 passed, headless (conftest forcesSDL_VIDEODRIVER=dummy)Deferred issues
All four open issues were skipped this cycle, which is why it was spent on test expansion:
.github/workflows/, which is excluded from autonomous change; release: version tags are pushed without the 'v' prefix publish.yml requires, so no release has ever been published #34 additionally awaits a maintainer decision on tagging.preponderous.*namespace convention across sibling projects.No tracking issue — gap found during triage.
This PR description was drafted during a Gardener session (https://github.com/Stephenson-Software/gardener).
🤖 Generated with Claude Code
drafted by Claude on behalf of Daniel Stephenson