test(coverage): add Behave BDD scenarios for 39 under-covered modules #1232

Closed
opened 2026-03-31 17:25:22 +00:00 by freemo · 0 comments
Owner

Metadata

  • Commit Message: test(coverage): add Behave scenarios for 39 under-covered modules
  • Branch: task/m2-coverage-boost-39-modules

Background

The current unit test coverage sits at 96.91% (77,328 / 79,793 lines), which is below the project's mandatory 97% merge gate. A coverage analysis of build/coverage.xml identified 39 source files with significant uncovered line clusters. This issue delivers targeted Behave BDD scenarios that exercise those uncovered code paths and bring overall coverage above the 97% threshold.

Acceptance Criteria

  • All 39 listed source files gain new Behave scenarios that exercise their previously-uncovered lines.
  • nox -s unit_tests passes with zero failures.
  • Overall line coverage (measured via nox -s coverage_report) reaches or exceeds 97%.
  • No existing tests are modified or broken.
  • All new feature files have fully implemented step definitions — no placeholders.
  • New tests follow the project's BDD conventions (module-specific step prefixes, mock placement in features/mocks/, cleanup handlers registered on context).

Subtasks

Critical Coverage (<50%)

  • src/cleveragents/lsp/client.py — 154 uncovered lines (29.7%)
  • src/cleveragents/application/services/execute_phase_context_assembler.py — 134 uncovered lines (24.3%)
  • src/cleveragents/lsp/lifecycle.py — 103 uncovered lines (34.0%)
  • src/cleveragents/resource/handlers/devcontainer.py — 79 uncovered lines (38.8%)
  • src/cleveragents/lsp/transport.py — 79 uncovered lines (46.6%)

Low Coverage (50–70%)

  • src/cleveragents/application/services/__init__.py — 129 uncovered lines (50.4%)
  • src/cleveragents/infrastructure/sandbox/overlay.py — 108 uncovered lines (67.3%)

Medium Coverage (70–90%)

  • src/cleveragents/application/services/vector_store_service.py — 76 uncovered lines (79.1%)
  • src/cleveragents/resource/handlers/git_checkout.py — 43 uncovered lines (81.6%)
  • src/cleveragents/application/services/faiss_vector_backend.py — 22 uncovered lines (83.8%)
  • src/cleveragents/resource/handlers/_base.py — 29 uncovered lines (83.6%)
  • src/cleveragents/lsp/discovery.py — 26 uncovered lines (84.7%)
  • src/cleveragents/lsp/tool_adapter.py — 20 uncovered lines (86.4%)
  • src/cleveragents/resource/handlers/fs_directory.py — 26 uncovered lines (86.7%)
  • src/cleveragents/a2a/events.py — 17 uncovered lines (87.8%)
  • src/cleveragents/cli/commands/actor_context.py — 26 uncovered lines (88.8%)
  • src/cleveragents/cli/commands/resource.py — 88 uncovered lines (89.3%)
  • src/cleveragents/domain/models/core/_resource_type_validation.py — 11 uncovered lines (89.3%)
  • src/cleveragents/resource/handlers/protocol.py — 12 uncovered lines (90.1%)

High Coverage (90–98%)

  • src/cleveragents/application/services/plan_lifecycle_service.py — 73 uncovered lines (92.2%)
  • src/cleveragents/application/container.py — 22 uncovered lines (93.4%)
  • src/cleveragents/application/services/resource_handler_service.py — 12 uncovered lines (93.2%)
  • src/cleveragents/application/services/checkpoint_service.py — 25 uncovered lines (93.5%)
  • src/cleveragents/infrastructure/database/repositories.py — 195 uncovered lines (94.6%)
  • src/cleveragents/infrastructure/sandbox/copy_on_write.py — 11 uncovered lines (94.6%)
  • src/cleveragents/infrastructure/sandbox/manager.py — 11 uncovered lines (95.9%)
  • src/cleveragents/cli/commands/plan.py — 91 uncovered lines (95.2%)
  • src/cleveragents/cli/main.py — 19 uncovered lines (95.8%)
  • src/cleveragents/cli/commands/config.py — 13 uncovered lines (95.9%)
  • src/cleveragents/lsp/runtime.py — 71 uncovered lines (54.2%)
  • src/cleveragents/mcp/adapter.py — 14 uncovered lines (96.1%)
  • src/cleveragents/resource/handlers/cloud.py — 10 uncovered lines (96.6%)
  • src/cleveragents/cli/output/materializers.py — 10 uncovered lines (97.4%)
  • src/cleveragents/cli/commands/repl.py — 13 uncovered lines (97.9%)
  • src/cleveragents/cli/commands/project_context.py — 12 uncovered lines (98.4%)
  • src/cleveragents/application/services/fix_then_revalidate.py — 10 uncovered lines (97.8%)
  • src/cleveragents/application/services/correction_service.py — 12 uncovered lines (97.9%)
  • src/cleveragents/application/services/config_service.py — 17 uncovered lines (98.5%)
  • src/cleveragents/application/services/acms_service.py — 10 uncovered lines (97.7%)

Validation

  • Run nox -s unit_tests — all scenarios pass
  • Verify coverage >= 97% via nox -s coverage_report

Definition of Done

This issue is complete when:

  • All subtasks above are completed and checked off.
  • A Git commit is created where the first line of the commit message matches the Commit Message in Metadata exactly, followed by a blank line, then additional lines providing relevant details about the implementation.
  • The commit is pushed to the remote on the branch matching the Branch in Metadata exactly.
  • The commit is submitted as a pull request to master, reviewed, and merged before this issue is marked done.
## Metadata - **Commit Message**: `test(coverage): add Behave scenarios for 39 under-covered modules` - **Branch**: `task/m2-coverage-boost-39-modules` ## Background The current unit test coverage sits at **96.91%** (77,328 / 79,793 lines), which is below the project's mandatory **97% merge gate**. A coverage analysis of `build/coverage.xml` identified **39 source files** with significant uncovered line clusters. This issue delivers targeted Behave BDD scenarios that exercise those uncovered code paths and bring overall coverage above the 97% threshold. ## Acceptance Criteria - All 39 listed source files gain new Behave scenarios that exercise their previously-uncovered lines. - `nox -s unit_tests` passes with zero failures. - Overall line coverage (measured via `nox -s coverage_report`) reaches or exceeds **97%**. - No existing tests are modified or broken. - All new feature files have fully implemented step definitions — no placeholders. - New tests follow the project's BDD conventions (module-specific step prefixes, mock placement in `features/mocks/`, cleanup handlers registered on `context`). ## Subtasks ### Critical Coverage (<50%) - [ ] `src/cleveragents/lsp/client.py` — 154 uncovered lines (29.7%) - [ ] `src/cleveragents/application/services/execute_phase_context_assembler.py` — 134 uncovered lines (24.3%) - [ ] `src/cleveragents/lsp/lifecycle.py` — 103 uncovered lines (34.0%) - [ ] `src/cleveragents/resource/handlers/devcontainer.py` — 79 uncovered lines (38.8%) - [ ] `src/cleveragents/lsp/transport.py` — 79 uncovered lines (46.6%) ### Low Coverage (50–70%) - [ ] `src/cleveragents/application/services/__init__.py` — 129 uncovered lines (50.4%) - [ ] `src/cleveragents/infrastructure/sandbox/overlay.py` — 108 uncovered lines (67.3%) ### Medium Coverage (70–90%) - [ ] `src/cleveragents/application/services/vector_store_service.py` — 76 uncovered lines (79.1%) - [ ] `src/cleveragents/resource/handlers/git_checkout.py` — 43 uncovered lines (81.6%) - [ ] `src/cleveragents/application/services/faiss_vector_backend.py` — 22 uncovered lines (83.8%) - [ ] `src/cleveragents/resource/handlers/_base.py` — 29 uncovered lines (83.6%) - [ ] `src/cleveragents/lsp/discovery.py` — 26 uncovered lines (84.7%) - [ ] `src/cleveragents/lsp/tool_adapter.py` — 20 uncovered lines (86.4%) - [ ] `src/cleveragents/resource/handlers/fs_directory.py` — 26 uncovered lines (86.7%) - [ ] `src/cleveragents/a2a/events.py` — 17 uncovered lines (87.8%) - [ ] `src/cleveragents/cli/commands/actor_context.py` — 26 uncovered lines (88.8%) - [ ] `src/cleveragents/cli/commands/resource.py` — 88 uncovered lines (89.3%) - [ ] `src/cleveragents/domain/models/core/_resource_type_validation.py` — 11 uncovered lines (89.3%) - [ ] `src/cleveragents/resource/handlers/protocol.py` — 12 uncovered lines (90.1%) ### High Coverage (90–98%) - [ ] `src/cleveragents/application/services/plan_lifecycle_service.py` — 73 uncovered lines (92.2%) - [ ] `src/cleveragents/application/container.py` — 22 uncovered lines (93.4%) - [ ] `src/cleveragents/application/services/resource_handler_service.py` — 12 uncovered lines (93.2%) - [ ] `src/cleveragents/application/services/checkpoint_service.py` — 25 uncovered lines (93.5%) - [ ] `src/cleveragents/infrastructure/database/repositories.py` — 195 uncovered lines (94.6%) - [ ] `src/cleveragents/infrastructure/sandbox/copy_on_write.py` — 11 uncovered lines (94.6%) - [ ] `src/cleveragents/infrastructure/sandbox/manager.py` — 11 uncovered lines (95.9%) - [ ] `src/cleveragents/cli/commands/plan.py` — 91 uncovered lines (95.2%) - [ ] `src/cleveragents/cli/main.py` — 19 uncovered lines (95.8%) - [ ] `src/cleveragents/cli/commands/config.py` — 13 uncovered lines (95.9%) - [ ] `src/cleveragents/lsp/runtime.py` — 71 uncovered lines (54.2%) - [ ] `src/cleveragents/mcp/adapter.py` — 14 uncovered lines (96.1%) - [ ] `src/cleveragents/resource/handlers/cloud.py` — 10 uncovered lines (96.6%) - [ ] `src/cleveragents/cli/output/materializers.py` — 10 uncovered lines (97.4%) - [ ] `src/cleveragents/cli/commands/repl.py` — 13 uncovered lines (97.9%) - [ ] `src/cleveragents/cli/commands/project_context.py` — 12 uncovered lines (98.4%) - [ ] `src/cleveragents/application/services/fix_then_revalidate.py` — 10 uncovered lines (97.8%) - [ ] `src/cleveragents/application/services/correction_service.py` — 12 uncovered lines (97.9%) - [ ] `src/cleveragents/application/services/config_service.py` — 17 uncovered lines (98.5%) - [ ] `src/cleveragents/application/services/acms_service.py` — 10 uncovered lines (97.7%) ### Validation - [ ] Run `nox -s unit_tests` — all scenarios pass - [ ] Verify coverage >= 97% via `nox -s coverage_report` ## Definition of Done This issue is complete when: - All subtasks above are completed and checked off. - A Git commit is created where the **first line** of the commit message matches the Commit Message in Metadata exactly, followed by a blank line, then additional lines providing relevant details about the implementation. - The commit is pushed to the remote on the branch matching the **Branch** in Metadata exactly. - The commit is submitted as a **pull request** to `master`, reviewed, and **merged** before this issue is marked done.
freemo added this to the v3.2.0 milestone 2026-03-31 17:25:44 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
cleveragents/cleveragents-core#1232
No description provided.