Merged
Conversation
There was a problem hiding this comment.
Pull request overview
Adds end-to-end and UI-level test coverage across the Immermatch pipeline and Streamlit pages, plus CI/coverage configuration updates to enforce baseline quality checks.
Changes:
- Add Streamlit
AppTest-based tests forapp.py,pages/verify.py, andpages/unsubscribe.py. - Add mocked “full pipeline” integration tests (CV → profile → queries → search → evaluate → summary) and daily task orchestration tests.
- Update pytest configuration (integration marker), coverage configuration, CI coverage gating, and supporting repo docs/config.
Reviewed changes
Copilot reviewed 12 out of 14 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
tests/test_pages_verify.py |
Adds Streamlit AppTest coverage for DOI verification page behavior. |
tests/test_pages_unsubscribe.py |
Adds Streamlit AppTest coverage for one-click unsubscribe flow. |
tests/test_integration.py |
Adds mocked end-to-end pipeline integration tests (tech + sustainability CV scenarios). |
tests/test_daily_task.py |
Adds orchestrator-level tests for daily_task.py with all externals mocked. |
tests/test_app_ui.py |
Adds basic UI smoke tests for the Streamlit main app. |
pyproject.toml |
Registers integration marker and adds coverage configuration. |
ROADMAP.md |
Marks integration testing milestone as complete. |
AGENTS.md |
Updates agent workflow guidance to run the full check suite automatically. |
.secrets.baseline |
Updates detect-secrets baseline metadata/config. |
.pre-commit-config.yaml |
Adjusts pre-push test hook to run pytest from .venv. |
.gitignore |
Ignores .coverage artifact. |
.github/workflows/ci.yml |
Enforces a minimum coverage threshold in CI. |
.github/copilot-instructions.md |
Adds repo-specific Copilot instructions (env + testing conventions). |
Comments suppressed due to low confidence (1)
.github/workflows/ci.yml:49
- CI runs coverage with
--cov=immermatch, butpyproject.tomlnow configures coverage sources asimmermatchanddaily_task. As written, thedaily_task.pytests won't count toward the reported coverage, which is confusing given the new config. Either include--cov=daily_task(or drop the--cov=...override and rely on the coverage config) so CI matches the intended coverage scope, or removedaily_taskfrom the coveragesourcelist.
run: pytest -v --cov=immermatch --cov-report=term --cov-fail-under=60
| @pytest.fixture() | ||
| def sustainability_cv_text() -> str: | ||
| """Load the sustainability/climate CV fixture.""" | ||
| return extract_text(str(FIXTURES_DIR / "sustainability_cv.md")) |
There was a problem hiding this comment.
sustainability_cv_text loads tests/fixtures/sustainability_cv.md, but that fixture file isn't present in tests/fixtures/ (only sample.md / sample.txt exist). This will raise FileNotFoundError and fail the test suite. Add the missing fixture file to tests/fixtures/ or change the test to use an existing fixture filename.
Suggested change
| return extract_text(str(FIXTURES_DIR / "sustainability_cv.md")) | |
| return extract_text(str(FIXTURES_DIR / "sample.txt")) |
4999070 to
302e359
Compare
- Add Streamlit AppTest UI tests for verify.py, unsubscribe.py, app.py - Add daily_task.py tests (expire/purge, query dedup, full pipeline) - Create .claude/settings.json for Claude Code auto-approve - Overhaul .vscode/settings.json: broad auto-approve, Copilot instructions - Create .github/copilot-instructions.md for Copilot Chat - Add coverage config to pyproject.toml + --cov-fail-under=60 in CI - Fix pre-push hook to use project venv (language: system) - Add .coverage to .gitignore, remove from tracking - Update AGENTS.md with explicit auto-run imperative 229 tests passing, 62% coverage (up from ~55%)
302e359 to
9a49648
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #21