Skip to content

Fix CI workflow and update Python versions - #80

Merged
piekstra merged 4 commits into
mainfrom
piekstra/78-fix-ci-workflow
Feb 7, 2026
Merged

piekstra merged 4 commits into
mainfrom
piekstra/78-fix-ci-workflow

Conversation

@piekstra

@piekstra piekstra commented Jan 30, 2026 •

Copy link
Copy Markdown
Owner

[#78]

Summary

Fix CI workflow issues that were causing all PRs to fail.

Changes

Python Versions

  • Added: Python 3.10
  • Removed: Python 3.9 (reaches EOL October 2025)
  • Kept: Python 3.11, 3.12
  • Not yet supported: Python 3.13 (requires updating aiohttp and freezegun dependencies)

CI Workflow Fixes

  1. Fixed branch trigger: Replaced $default-branch template variable with main
  2. Added pytest-asyncio: Required for async test functions
  3. Updated docker command: Use docker compose (v2) instead of deprecated docker-compose
  4. Removed unnecessary step: Docker Compose is pre-installed on GitHub runners
  5. Added wait step: Ensures mock API is ready before running tests
  6. Added fail-fast: false: One Python version failure won't cancel others

Test Configuration Fixes

  1. Added pytest.ini: Configure asyncio_mode = auto for pytest-asyncio
  2. Removed deprecated event_loop fixture: Now handled automatically by pytest-asyncio
  3. Removed event_loop from usefixtures: Test class no longer needs explicit event_loop

Test plan

  • CI runs on Python 3.10, 3.11, 3.12
  • All 24 tests pass on all Python versions

- Fix branch trigger: replace $default-branch template var with 'main'
- Add pytest-asyncio to dependencies (required for async tests)
- Update Python versions: test 3.10, 3.11, 3.12, 3.13 (drop EOL 3.9)
- Use 'docker compose' (v2) instead of deprecated 'docker-compose'
- Remove unnecessary docker-compose install step (pre-installed on runners)
- Add wait step to ensure mock API is ready before tests

Fixes #78
- Add pytest.ini with asyncio_mode = auto
- Remove deprecated event_loop fixture from conftest.py
  (pytest-asyncio now handles this automatically)
Python 3.13 removed the 'cgi' module which is used by aiohttp 3.7.4.
The freezegun package also has incompatibilities with Python 3.13.

Adding Python 3.13 support requires updating dependencies:
- aiohttp to 3.9+
- freezegun to 1.3+

Also set fail-fast: false so one Python version failure doesn't cancel others.
@piekstra
piekstra merged commit d815864 into main Feb 7, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant