[PR #176] [MERGED] ci: run python tests on pull requests and main #2639

Closed
opened 2026-06-07 15:05:32 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/reconurge/flowsint/pull/176
Author: @dextmorgn
Created: 6/5/2026
Status: Merged
Merged: 6/5/2026
Merged by: @dextmorgn

Base: mainHead: ci/python-tests


📝 Commits (7)

  • 07584eb ci: run python tests on pull requests and main
  • 17e36c9 ci: provide AUTH_SECRET required at flowsint_core import
  • a24551e ci: provide REDIS_URL, also import-time required by flowsint_core
  • 71e3a68 fix(core): declare pyyaml dependency
  • 22c6908 test(core): stop relying on env credentials in no-connection test
  • dc36ef6 test(core): factor out env-independent no-connection repo setup
  • 612d39e test: provide dummy Neo4j credentials in conftest

📊 Changes

7 files changed (+89 additions, -36 deletions)

View changed files

.github/workflows/tests.yml (+37 -0)
📝 Makefile (+1 -0)
📝 flowsint-core/pyproject.toml (+1 -0)
📝 flowsint-core/tests/conftest.py (+6 -0)
📝 flowsint-core/tests/core/graph/test_graph_repository.py (+29 -36)
📝 flowsint-enrichers/tests/conftest.py (+13 -0)
📝 uv.lock (+2 -0)

📄 Description

What

New tests.yml workflow: runs the Python test suites on every PR and push to main.

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-uv installs uv, picks Python from .python-version (3.12), caches on uv.lock
  • Concurrency group cancels superseded runs on the same ref
  • No infra services needed: all four suites are mocked/self-contained (verified locally with unreachable DATABASE_URL/REDIS_URL/NEO4J_URI_BOLT — 458 tests pass)

Also

make test now includes flowsint-api — its test suite (6 tests) existed but was never wired into the target.

Verification

make test locally: 44 + 396 + 12 + 6 = 458 passed, exit 0.

This PR's checks are the live proof.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/reconurge/flowsint/pull/176 **Author:** [@dextmorgn](https://github.com/dextmorgn) **Created:** 6/5/2026 **Status:** ✅ Merged **Merged:** 6/5/2026 **Merged by:** [@dextmorgn](https://github.com/dextmorgn) **Base:** `main` ← **Head:** `ci/python-tests` --- ### 📝 Commits (7) - [`07584eb`](https://github.com/reconurge/flowsint/commit/07584ebc4a4029f720b8c7286043cc963ff8f912) ci: run python tests on pull requests and main - [`17e36c9`](https://github.com/reconurge/flowsint/commit/17e36c916279e9ed81e59ff5ff12892645b1005f) ci: provide AUTH_SECRET required at flowsint_core import - [`a24551e`](https://github.com/reconurge/flowsint/commit/a24551ed550829a37db145734c0c3c2f5ed46d7f) ci: provide REDIS_URL, also import-time required by flowsint_core - [`71e3a68`](https://github.com/reconurge/flowsint/commit/71e3a68830af161e2784c8d5e11d282377d6d76a) fix(core): declare pyyaml dependency - [`22c6908`](https://github.com/reconurge/flowsint/commit/22c6908a0efb389bb6028af724848164c1d12426) test(core): stop relying on env credentials in no-connection test - [`dc36ef6`](https://github.com/reconurge/flowsint/commit/dc36ef633e32e088e63e5e2cd51ed2dfbd644e1e) test(core): factor out env-independent no-connection repo setup - [`612d39e`](https://github.com/reconurge/flowsint/commit/612d39eadf72dc3161126d514f806cc1bfb52041) test: provide dummy Neo4j credentials in conftest ### 📊 Changes **7 files changed** (+89 additions, -36 deletions) <details> <summary>View changed files</summary> ➕ `.github/workflows/tests.yml` (+37 -0) 📝 `Makefile` (+1 -0) 📝 `flowsint-core/pyproject.toml` (+1 -0) 📝 `flowsint-core/tests/conftest.py` (+6 -0) 📝 `flowsint-core/tests/core/graph/test_graph_repository.py` (+29 -36) 📝 `flowsint-enrichers/tests/conftest.py` (+13 -0) 📝 `uv.lock` (+2 -0) </details> ### 📄 Description ## What New `tests.yml` workflow: runs the Python test suites on every PR and push to `main`. ## 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-uv` installs uv, picks Python from `.python-version` (3.12), caches on `uv.lock` - Concurrency group cancels superseded runs on the same ref - No infra services needed: all four suites are mocked/self-contained (verified locally with unreachable `DATABASE_URL`/`REDIS_URL`/`NEO4J_URI_BOLT` — 458 tests pass) ## Also `make test` now includes `flowsint-api` — its test suite (6 tests) existed but was never wired into the target. ## Verification `make test` locally: 44 + 396 + 12 + 6 = 458 passed, exit 0. This PR's checks are the live proof. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-06-07 15:05:32 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/flowsint#2639