Repository navigation
test: record a TeamIteration clear on a team-only child under a scheduled parent - #25
man8-octoflow[bot] wants to merge 2 commits into
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>
|
Important Review skippedThis PR was authored by a bot without an assigned CodeRabbit review seat. Ask an organization administrator to assign a seat to the bot. See the seat-assignment guide. After the seat is assigned, request a review again. ⚙️ Run configuration
You can disable this status message by setting the
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 rate limit |
|
@coderabbitai review |
|
|
Superseded by #27 (same branch and head), re-opened so it can take a review. |
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