TEST-PLAN.md 1.4 KB

Test Plan — analyze.py classifier suite (compliance-required)

Generated: 2026-05-24. Mode: Author. Caller: Phase 1 Agent B.

Purpose

Freeze classifier behavior in analyze.py so downstream build_members.py cannot silently regress KPI semantics. Compliance-required per PLAN.md §"analyze.py test suite".

Scope

In: _norm_vote, _majority_position, classify_vote, aggregate from analyze.py; end-to-end parse→classify→aggregate via parse.py. Out: parse.py exhaustive tests, render code, fetch code.

Framework

  • Chosen: pytest 9.0.3 (installed via python3 -m pip install --user --break-system-packages pytest)
  • Source of pinning: project has no manifest; pytest is the standard Python runner

Sandbox / Layout

  • Path: ./tests/ (in-tree, per the user-specified PLAN.md layout)
  • Sandbox exception: PLAN.md §"Target File Layout" mandates in-tree tests/.

Mock Boundaries

  • Mocked: none. Fixtures are real XML on disk.
  • Not mocked: analyze.py, parse.py.

Test Files

# File Covers Test count (est.)
1 tests/test_analyze.py normalization, classification, aggregation ~12

Fixtures: 4 required + 1 optional (split-party tied).

CI visibility

This suite lives under ./tests/ (in-tree, NOT gitignored — per PLAN.md). It runs when explicitly invoked via python3 -m pytest tests/.

Approval token

APPROVED-TEST-PLAN was provided by Phase 1 Agent B caller.