mirror of
https://github.com/frappe/gunicorn.git
synced 2026-07-01 18:21:30 +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.
30 lines
677 B
YAML
30 lines
677 B
YAML
services:
|
|
gunicorn:
|
|
build:
|
|
context: ../../..
|
|
dockerfile: tests/docker/uwsgi/Dockerfile.gunicorn
|
|
expose:
|
|
- "8000"
|
|
healthcheck:
|
|
test: ["CMD", "python", "-c", "import socket; s=socket.socket(); s.connect(('localhost', 8000)); s.close()"]
|
|
interval: 2s
|
|
timeout: 5s
|
|
retries: 10
|
|
start_period: 5s
|
|
|
|
nginx:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile.nginx
|
|
ports:
|
|
- "8080:8080"
|
|
depends_on:
|
|
gunicorn:
|
|
condition: service_healthy
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost:8080/"]
|
|
interval: 2s
|
|
timeout: 5s
|
|
retries: 10
|
|
start_period: 5s
|