Skip to content

Add correct type annotations and unit tests across the entire repository #14

@rebuild-123

Description

@rebuild-123

Goal

Add correct type annotations and unit tests across this repository so the examples are easier to maintain, safer to refactor, and easier to validate automatically.

Scope

This task covers all Python code in the repository.

  • Add appropriate type annotations to all Python files, including example/demo entrypoints such as *TestDrive.py and Client.py, when it can be done without changing runtime behavior.
  • Add or expand unit tests under tests/ for the repository's modules and behaviors.
  • For demo-style scripts and entrypoints that are harder to unit test directly, add the smallest useful behavior-preserving tests or smoke/contract tests instead of forcing invasive refactors.
  • Keep the current architecture and design-pattern examples recognizable.

Requirements

  • Preserve existing runtime behavior unless a change is required to make the code testable or typeable.
  • Do not refactor unrelated code.
  • Do not add dependencies unless truly required.
  • Prefer standard library unittest.
  • Keep tests importable under tests/ with filenames matching test*.py.
  • Use this validation command as the required final check:
PYTHONPATH=. python -m unittest discover -s tests -p 'test*.py' -t .

Acceptance Criteria

  • All Python files have meaningful, correct type annotations where feasible.
  • New or updated tests cover the repository's implemented behaviors broadly, not just one or two examples.
  • Demo/TestDrive/Client scripts are not ignored; they are either typed and covered directly, or covered by minimal smoke/contract tests with rationale.
  • The repository passes the required unittest discovery command.
  • Any unavoidable gaps are documented clearly in the final Codex review output.

Notes for Codex

  • Produce a trusted plan before implementation.
  • Keep implementation within approved scope.
  • If repository reality conflicts with the issue scope, stop and report the mismatch before making broad changes.
  • Prefer phased implementation internally if needed, but complete the work under this issue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions