feat: Add integration test workflow + Python 3.12 setuptools fix#611
Merged
dahagag merged 6 commits intoascoderu:masterfrom Feb 8, 2026
Merged
Conversation
This workflow enables automated integration testing with Internet-in-a-Box (IIAB): - Triggers on PR labeled 'test-iiab-integration' - Triggers on merge to master - Dispatches events to ascoderu/iiab-lokole-tests repository - Posts test results back to PRs Related to integration test suite at: https://github.com/ascoderu/iiab-lokole-tests
…k PRs This implements the 'safe to test' pattern used by major OSS projects: - Maintainers explicitly approve fork PRs by adding test-iiab-integration label - pull_request_target runs in base repo context with access to secrets - Safe because we don't checkout/execute PR code, only read metadata - Enables integration testing for fork PRs after maintainer review Fixes the workflow failure on fork PRs while maintaining security.
Python 3.12+ no longer includes setuptools by default, but flask-security 3.0.0 imports pkg_resources which requires it. This fixes the error: ModuleNotFoundError: No module named 'pkg_resources'
Setuptools 73+ removed pkg_resources module which is still required by flask-security 3.0.0. Testing showed: - setuptools 72.2.0: ✅ pkg_resources available (deprecated but works) - setuptools 82.0.0: ❌ pkg_resources removed Constraint: setuptools>=65.5.0,<73.0.0
…tibility API server was crashing with 'ModuleNotFoundError: No module named pkg_resources' because gunicorn requires pkg_resources from setuptools, but setuptools 73+ removed this module. The constraint was already in requirements-webapp.txt for the client, but requirements.txt (used by API/worker containers) was missing it, causing the API container to fail on startup. Root cause: docker/app/Dockerfile installs both requirements-webapp.txt AND requirements.txt, but the latter lacked the setuptools constraint, allowing pip to install setuptools 73+ which doesn't provide pkg_resources. Fix: Add setuptools>=65.5.0,<73.0.0 to requirements.txt to ensure pkg_resources is available for gunicorn in Python 3.9 API/worker containers. Fixes: Integration test failures where API container exits with code 1
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.
Changes
1. Integration Test Trigger Workflow
test-integrationon PRs to trigger tests iniiab-lokole-testsrepo2. Python 3.12+ Compatibility Fix
setuptools>=65.5.0torequirements-webapp.txtflask-security==3.0.0importspkg_resourceswhich requires setuptoolsModuleNotFoundError: No module named 'pkg_resources'Testing
Related