Commit Graph

12 Commits

Author SHA1 Message Date
Peter
cf6d66adb2 feat: implement continuous polling loop
start() now loops indefinitely, calling poll() every 5 minutes.
Each cycle is wrapped in a poll_cycle OTel span with a
flights.published attribute (0 on failure). Transient poll failures
are logged and the loop continues. The Kafka stream engine is stopped
cleanly via try/finally on shutdown.

Closes #5

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-07-19 09:11:07 +02:00
Peter
47b8fd29f8 test: add pytest infrastructure and poll() tests
- Add pytest and pytest-asyncio as optional dev dependencies
- Configure asyncio_mode=auto and pythonpath=[src] in pyproject.toml
- Write three tests at the poll() seam:
  * single-page response publishes all Flights and returns the count
  * paginated response follows link:rel=next and publishes all pages
  * HTTP error from raise_for_status() propagates out of poll()

Tests use injected stub HTTP session and mock Kafka engine;
no real network or broker required.

Closes #4

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-07-19 09:07:27 +02:00
Peter
6dbc79202c prefactor: extract poll() function from start()
The inner fetch-and-publish sweep is moved into a standalone
async poll(session, stream_engine, api_settings, kafka_settings, tracer) -> int
function. start() calls it exactly once — observable behaviour is unchanged.
This creates the test seam that tickets #4 and #5 depend on.

Closes #3

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-07-19 09:03:12 +02:00
Peter
ff5c8ba548 OPT add linting workflow 2025-12-29 17:15:35 +01:00
Peter
1238264f74 OPT add linting workflow 2025-12-29 17:15:35 +01:00
Peter
5c4dc8a630 OPT project structure 2025-12-29 17:15:29 +01:00
Peter
ec0483c409 OPT add linting workflow 2025-12-29 17:09:46 +01:00
Peter
db0c1dcb52 OPT add linting workflow 2025-12-29 17:00:39 +01:00
9db1c8d108 Merge pull request 'new/initial_commit' (#1) from new/initial_commit into main
Some checks failed
SonarQube Scan / sonarqube (push) Failing after 59s
Reviewed-on: #1
2025-12-28 18:55:28 +01:00
Peter Wieringa
ea1e8e4202 Merge remote-tracking branch 'origin/main' into new/initial_commit 2025-12-28 18:36:07 +01:00
Peter Wieringa
cb78d8e53d NEW: initial commit 2025-12-28 16:09:27 +01:00
4b7bac51b9 Initial commit 2025-12-28 15:34:52 +01:00