Skip to content

test(BA-7846): add scenario tests for the retention policy adapter - #14542

Draft
jopemachine wants to merge 4 commits into
mainfrom
test/BA-7846-retention-policy-scenarios
Draft

test(BA-7846): add scenario tests for the retention policy adapter#14542
jopemachine wants to merge 4 commits into
mainfrom
test/BA-7846-retention-policy-scenarios

Conversation

@jopemachine

@jopemachine jopemachine commented Sep 11, 2026

Copy link
Copy Markdown
Member

Resolves BA-7846

Summary

  • Fill api/adapters/retention_policy/KNOWLEDGE.md and transcribe it into tests/scenario/bai_scenario/manager/retention_policy/ — 37 rows over five modules — with seeds/retention_policy/retention_policy.py and components/retention_policy.py.
  • All six calls are exercised; each of the eight categories gets a create row.

What the rows pin:

  • Unlike the other catalogs, reading one policy is behind the entity gate, so a user granted nothing is refused where they would read a login client type or a runtime variant.
  • Delete and purge are the same hard delete; both rows answer the same way.
  • The monitor role passes the search and is refused on create.
  • Moving a policy to a category already taken is refused with the raw unique-violation error, not the conflict error the create path maps it to.

tests/scenario/bai_scenario/components/system.py — the caller-only situation every system-concern table shares — travels in each of the eight sibling PRs byte for byte (#14535, #14536, #14538, #14542, #14543, #14544, #14545). Whichever merges first, the rest rebase clean.

Test plan

  • python3 scripts/knowledge/check.py passes
  • The rows passed in CI run 34558080395 of the unsplit branch (0 failing); report.md is generated from that run's artifacts with scripts/scenario-report.py --split
  • test-scenario and verify-scenario-report pass on this PR

🤖 Generated with Claude Code

https://claude.ai/code/session_01Snp9H2jEVbB2s1C6ixUHGn

Fill adapters/retention_policy/KNOWLEDGE.md with the scenarios the adapter guarantees and
transcribe it into tests/scenario/bai_scenario/manager/retention_policy/ — 37 rows over
five modules. components/system.py is the caller-only situation every system concern
table shares; the sibling PRs carry the same file byte for byte. The report is generated
from CI run 34558080395.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Snp9H2jEVbB2s1C6ixUHGn
@github-actions github-actions Bot added the size:XL 500~ LoC label Sep 11, 2026
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Snp9H2jEVbB2s1C6ixUHGn
jopemachine and others added 2 commits September 11, 2026 14:02
…narios for readability

The knowledge document, the component docstrings and every scenario sentence
used a terse, metaphorical style (문, 줄, 훑기, 심다, 실리다) that did not read
at a glance. Rewrite them in plain technical Korean: 생성/조회/검색/수정/삭제
for the operations, 완전 삭제 for purge, 권한 검사 for enforcement, 미리
만들어 둔 for seeded data, and 역할 부족으로 거부 for the role refusals.
report.md follows from the CI run in the next commit.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NQiEEB2mfJtFWnMnHLDFnT
…tten wording

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013qjgCzggSejnvDrLt4tG3a
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XL 500~ LoC

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant