Smoke testing when updating dependencies (and doing PR's) - #11
Merged
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
Adds a lightweight CI smoke-test gate for dependency update pull requests, ensuring the FastAPI app boots and key endpoints respond after lockfile upgrades.
Changes:
- Added pytest-based smoke tests with a session-scoped
TestClientfixture that mocks external Scoutnet init/shutdown and disables auth. - Introduced a new GitHub Actions CI workflow to run the smoke tests on
deps/**branch pushes and PRs targetingmain. - Added a
devdependency group for pytest and updateduv.lockaccordingly.
Reviewed changes
Copilot reviewed 5 out of 7 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
uv.lock |
Adds dev/test tooling dependencies (pytest and its transitive deps) to the lockfile. |
pyproject.toml |
Defines a dev dependency group and pytest discovery settings. |
tests/conftest.py |
Sets env vars early and provides a mocked, session-scoped FastAPI TestClient fixture. |
tests/test_smoke.py |
Adds endpoint-level smoke tests for app boot and key routes. |
.github/workflows/update-dependencies.yml |
Updates dependency-update automation action versions and PR metadata. |
.github/workflows/ci.yml |
New workflow to install dev deps and run pytest smoke tests. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
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.
A summary of what is added:
New files:
tests/conftest.py— Sets env vars before any app imports, provides a session-scopedTestClientfixture withscoutnet_init/scoutnet_shutdownmockedtests/test_smoke.py— 5 smoke tests: app boots,/metrics,/app-config,/api/docs,/api/openapi.json.github/workflows/ci.yml— CI workflow triggered on pushes todeps/**and PRs tomainModified files:
pyproject.toml— Added[dependency-groups] dev = ["pytest>=8"]and[tool.pytest.ini_options]How it fits together:
create-pull-requestpushes to thedeps/update-uv-lockbranch before creating the PR. That push triggersci.yml(via thepush: deps/**trigger), so CI results appear on the PR before you merge.