mirror of
https://github.com/frappe/gunicorn.git
synced 2026-07-02 18:51:31 +08:00
Add comprehensive integration tests verifying gunicorn's uWSGI binary protocol works correctly with nginx's uwsgi_pass directive. Test categories: - Basic GET/POST requests with query strings and large bodies - Header preservation (custom headers, Host, Content-Type) - HTTP keep-alive connections - Error responses (400-503 status codes) - WSGI environ variables - Large response streaming (1MB) - Concurrent request handling - Edge cases (binary data, unicode, long headers) Architecture: pytest -> nginx:8080 -> uwsgi_pass -> gunicorn:8000 Also adds GitHub Actions workflow that runs on changes to uwsgi module or docker test files.
46 lines
985 B
YAML
46 lines
985 B
YAML
name: Docker Integration Tests
|
|
|
|
on:
|
|
push:
|
|
branches: [master]
|
|
paths:
|
|
- 'gunicorn/uwsgi/**'
|
|
- 'tests/docker/uwsgi/**'
|
|
- '.github/workflows/docker-integration.yml'
|
|
pull_request:
|
|
paths:
|
|
- 'gunicorn/uwsgi/**'
|
|
- 'tests/docker/uwsgi/**'
|
|
- '.github/workflows/docker-integration.yml'
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
env:
|
|
FORCE_COLOR: 1
|
|
|
|
jobs:
|
|
uwsgi-nginx:
|
|
name: uWSGI Protocol with nginx
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 15
|
|
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v6
|
|
with:
|
|
python-version: "3.12"
|
|
cache: pip
|
|
cache-dependency-path: requirements_test.txt
|
|
|
|
- name: Install test dependencies
|
|
run: |
|
|
python -m pip install --upgrade pip
|
|
python -m pip install pytest requests
|
|
|
|
- name: Run uWSGI integration tests
|
|
run: |
|
|
pytest tests/docker/uwsgi/ -v --tb=short
|