ci: run python tests on pull requests and main#176
Merged
Conversation
Single entrypoint: CI calls `make test`, same as local development, so the two can't drift. uv handles Python (.python-version) and dependency sync; cache keyed on uv.lock. Also add flowsint-api to `make test` — its suite existed but was never wired in.
flowsint_core imports yaml (template_generator_service, yaml_loader) but never declared it — present locally only as a leftover in the shared venv. CI's clean resolve exposed the missing declaration.
Neo4jGraphRepository(neo4j_connection=None) falls back to the Neo4jConnection singleton, which requires NEO4J_* env vars — the test only passed locally thanks to .env. Pass a mock instead; the test nulls _connection right after anyway.
Previous fix covered one occurrence; 17 other tests built Neo4jGraphRepository(neo4j_connection=None), hitting the singleton fallback that requires NEO4J_* env vars. Single helper, no env dependency left.
Any code path reaching the Neo4jConnection singleton requires NEO4J_* env vars at construction — tests only passed thanks to developers' local .env files. Driver creation is lazy, nothing connects. Verified by running all four suites with every .env removed: 458 passed.
xenosnikos
pushed a commit
to xenosnikos/flowsint
that referenced
this pull request
Jun 7, 2026
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.
What
New
tests.ymlworkflow: runs the Python test suites on every PR and push tomain.How
One step, one source of truth: CI calls
make test— exactly what runs locally. No duplicated pytest commands to drift out of sync.astral-sh/setup-uvinstalls uv, picks Python from.python-version(3.12), caches onuv.lockDATABASE_URL/REDIS_URL/NEO4J_URI_BOLT— 458 tests pass)Also
make testnow includesflowsint-api— its test suite (6 tests) existed but was never wired into the target.Verification
make testlocally: 44 + 396 + 12 + 6 = 458 passed, exit 0.This PR's checks are the live proof.