Project-Specific Context: Testing

This file outlines the rules, recommendations, and history for test coverage and test development in this repository. Use it to verify all new or changed logic is backed by robust, appropriate tests and follows local conventions.


1. Area Overview

All automated tests live in src/test/ and are organized by major feature or module. Tests include:

  • Unit tests for logic modules

  • Integration/system tests for critical flows or cross-module behavior

  • (Add UI or API tests here if/when added in the future)


2. Test Practices and Evolution

  • All new modules must include matching or updated tests in src/test/

  • Historical test focus: policy parsing, statement normalization, core analytical engines

  • Test framework(s) used: pytest, (expand if new ones are added)


3. Local Testing Rules

  • PRs are blocked unless new code is fully tested or is accompanied by a written justification (document here if exception made)

  • Test classes/functions follow test_* naming where applicable

  • Pytest fixtures, mocks, and coverage requirements are documented as new modules/features are added


4. Differences from Generic Guidelines

  • Project may add coverage thresholds, stricter test naming, or mandate integration test for certain packages; always update this file with such changes

  • Any CI/CD hooks for tests (or extra test stages in pre-commit/push hooks) are described here


For universal patterns and checklist, see …/generic/GENERIC_CODING_STANDARDS.md.