Skip to content

Mirror unittest suite with pytest equivalents and add CI target #16

@MichaelDecent

Description

@MichaelDecent

Summary

Current tigrcorn tests are primarily unittest-style. We want a pytest mirror of the existing suite and a CI target that runs the mirrored pytest tests.

Motivation

  • Align test style with team preference (pytest)
  • Make future test authoring/maintenance more consistent
  • Validate parity between existing unittest behavior and pytest behavior

Scope

  • Create pytest-based mirror tests for existing unittest test modules.
  • Keep behavioral assertions equivalent (no intentional behavior changes).
  • Add a dedicated CI job/target to run mirrored pytest tests.
  • Ensure local docs/commands mention how to run the pytest mirror target.

Out of Scope

  • Feature changes in src/tigrcorn/
  • Expanding certification boundary
  • Deleting the original unittest files in this ticket (unless explicitly approved)

Implementation Notes

  • Preserve existing test intent and coverage.
  • Prefer pytest idioms (parametrize, fixtures) only when parity is preserved.
  • Keep naming/path rules and mutability constraints from AGENTS.md.

Acceptance Criteria

  • Pytest mirror files exist for targeted unittest modules.
  • CI includes a pytest mirror target/job and it passes.
  • pytest -q (or documented target) runs mirrored tests successfully.
  • Existing unittest suite still passes (unless removal is separately approved).
  • Documentation updated for running both suites.
  • No boundary/policy violations (per conformance docs).

Verification

  • python -m compileall -q src benchmarks tools
  • pytest -q
  • Any additional CI command introduced for mirrored pytest suite

Risks / Watchouts

  • Drift between unittest and mirrored pytest tests
  • Accidental assertion behavior changes during translation

Deliverables

  • New mirrored pytest test files
  • CI config update for pytest mirror target
  • Minimal docs update for developer workflow

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions