Skip to content

test: add unit tests for contribarena.models.agent_result Pydantic models#125

Open
northline-lab wants to merge 1 commit into
qWaitCrypto:mainfrom
northline-lab:contribarena/faba170c9bcd-agent-result-models
Open

test: add unit tests for contribarena.models.agent_result Pydantic models#125
northline-lab wants to merge 1 commit into
qWaitCrypto:mainfrom
northline-lab:contribarena/faba170c9bcd-agent-result-models

Conversation

@northline-lab
Copy link
Copy Markdown
Contributor

Summary

Add focused unit tests for contribarena.models.agent_result Pydantic models that previously had no dedicated test coverage.

Models now tested

Model Purpose
RepoSummary Captures repository identity (owner, name, url, default_branch)
OpportunitySummary Describes a contribution opportunity with risk level
SelectedTask Describes the selected task with risk level
WorkspaceSummary Captures workspace commands and patch status
AgentFinalResult Top-level agent run result with nested models

Test Coverage

  • RepoSummaryTest (6 tests) — required fields, defaults, explicit values, missing fields raise ValidationError
  • OpportunitySummaryTest (6 tests) — required fields, defaults, explicit values, all risk literals accepted, invalid risk rejected, missing title raises
  • SelectedTaskTest (6 tests) — required fields, defaults, explicit values, all risk literals accepted, invalid risk rejected, missing title raises
  • WorkspaceSummaryTest (3 tests) — defaults, explicit values with CommandResult, commands_run factory independence
  • AgentFinalResultTest (11 tests) — required fields, all status literals accepted, invalid status rejected, defaults, explicit values with nested models, blockers factory independence, missing required fields raise, dict-input coercion for nested repo and task
  • AgentResultImportTest (1 test) — all 5 symbols importable from contribarena.models package

No production code is modified.

Verification

  • pytest -q tests/unit/test_agent_result_models.py → 33 passed in 0.20s
  • ruff check tests/unit/test_agent_result_models.py → All checks passed
  • No secrets in diff

Risk

Low — test-only addition. No production code is modified.


Prepared by ContribArena in owned-live mode.

…dels

## Summary

Add focused unit tests for `contribarena.models.agent_result` Pydantic models that previously had no dedicated test coverage.

## Models now tested

| Model | Purpose |
|---|---|
| `RepoSummary` | Captures repository identity (owner, name, url, default_branch) |
| `OpportunitySummary` | Describes a contribution opportunity with risk level |
| `SelectedTask` | Describes the selected task with risk level |
| `WorkspaceSummary` | Captures workspace commands and patch status |
| `AgentFinalResult` | Top-level agent run result with nested models |

## Test Coverage

- **RepoSummaryTest** (6 tests) — required fields, defaults, explicit values, missing fields raise ValidationError
- **OpportunitySummaryTest** (6 tests) — required fields, defaults, explicit values, all risk literals accepted, invalid risk rejected, missing title raises
- **SelectedTaskTest** (6 tests) — required fields, defaults, explicit values, all risk literals accepted, invalid risk rejected, missing title raises
- **WorkspaceSummaryTest** (3 tests) — defaults, explicit values with CommandResult, commands_run factory independence
- **AgentFinalResultTest** (11 tests) — required fields, all status literals accepted, invalid status rejected, defaults, explicit values with nested models, blockers factory independence, missing required fields raise, dict-input coercion for nested repo and task
- **AgentResultImportTest** (1 test) — all 5 symbols importable from contribarena.models package

No production code is modified.

## Verification

- `pytest -q tests/unit/test_agent_result_models.py` → 33 passed in 0.20s
- `ruff check tests/unit/test_agent_result_models.py` → All checks passed
- No secrets in diff

## Risk

Low — test-only addition. No production code is modified.

---

*Prepared by ContribArena in owned-live mode.*
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant