Repository navigation
test: record a TeamIteration clear on a team-only child under a scheduled parent - #27
Conversation
…uled parent Records the configuration the existing TeamIteration cassette left open: a parent UserStory scheduled into its team's sprint, and a child Task created with the same Team but no TeamIteration key at all. TargetProcess gave the child the parent's sprint at creation - the create echo already carries it - and then honoured the explicit null: clear_team_iteration returned the verifying re-read instead of raising, and an independent re-read carries the TeamIteration key present and null. The test captures every observation and records the cleanup and both 404 re-reads before asserting anything, so an unexpected outcome cannot cut a recorded run short. Library, SPEC.md and docs are unchanged. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configuration
📒 Files selected for processing (2)
Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthroughThe integration suite adds a test that clears a child Task’s inherited ChangesTeam iteration clearing
Priority: ⬇️ Low Estimated code review effort: 2 (Simple) | ~10 minutes Change: Other Merge Risk: ⚪ Minimal · up to The new test records the team-only child scenario, and no actionable issue remains that should delay merging. 🚥 Pre-merge checks | ✅ 7✅ Passed checks (7 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
✨ Simplify code
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
@coderabbitai review |
✅ Action performedReview finished.
|
Summary
Records the
TeamIterationconfiguration the existing cascade cassette left open, and asserts what TargetProcess did with it. The parentUserStoryis scheduled into its team's sprint. The childTaskis created with the sameTeamand noTeamIterationkey at all, so any sprint the child shows can only have come from the parent.What the recording shows:
clear_team_iterationreturned the verifying re-read instead of raisingTeamIterationCascadeError. An independent re-read afterwards carries"TeamIteration": null, with the key present and null. The test asserts that through the model's set fields, so the "a field the re-read does not carry counts as cleared" lenience is not what passed it.No issue on this repository tracks this; the recording is evidence for a design question about the documented cascade, which this pull request deliberately does not settle.
Changes
tests/integration/test_live_readwrite.py:test_clear_team_iteration_lands_on_a_team_only_child_that_inherited_the_parent_sprint, plus a small_read_after_deletehelper. Every observation is captured first: the create echo, the read before, the clear's outcome (returned or raised), the read after, and both delete re-reads. Assertions run only once the cleanup is recorded, so an unexpected outcome cannot cut a recorded run short.tests/integration/cassettes/test_live_readwrite/test_clear_team_iteration_lands_on_a_team_only_child_that_inherited_the_parent_sprint.yaml: the recording, 13 interactions, written by the conftest hooks and not hand-edited. Entity Ids are kept as recorded, per the cassette convention.Testing
uv run ruff check .,uv run ruff format --check .: pass.uv run mypy --strict src: pass.uv run pytest -q --cov=targetprocess_py --cov-fail-under=90, offline: 1507 passed, 99.17% coverage.uv run pre-commit run --all-filesat both the pre-commit and pre-push stages: pass.scripts/check_internal_refs.py: pass. jscpd: no clone involving the changed file.authorization,cookie, and anyaccess_tokenvalue other thanREDACTED;Sanitised <Field>placeholders.Context
TeamIterationCascadeError, its docstring,SPEC.mdanddocs/USAGE.md. Together with the existing cassette, this recording means neither configuration tried has reproduced the documented cascade. Whether that narrows the documented behaviour is a design decision this test does not make.Checklist
uv run ruff check .anduv run ruff format --check .passuv run mypy --strict srcpassesuv run pytest -qpasses and coverage stays at or above 90%uv run pre-commit run --all-files --hook-stage pre-commitpassesuv run pre-commit run --all-files --hook-stage pre-pushpassesTODO/FIXME/HACK/XXXmarkers name an issue (e.g.TODO(#123))🤖 Generated with Claude Code
Summary by CodeRabbit