From 9e21b36769e977ffa4221afbc76011d7cefb0485 Mon Sep 17 00:00:00 2001 From: Erica Pisani Date: Thu, 26 Feb 2026 10:32:23 -0500 Subject: [PATCH] feat: Add Django uWSGI FileResponse test project Add a self-contained Django project for testing FileResponse behavior when running under uWSGI. Includes a sample image endpoint and Sentry SDK integration with tracing enabled. Co-Authored-By: Claude --- .../.python-version | 1 + test-django-uwsgi-fileresponse/README.md | 4 + test-django-uwsgi-fileresponse/main.py | 6 + test-django-uwsgi-fileresponse/manage.py | 22 +++ .../mysite/__init__.py | 0 test-django-uwsgi-fileresponse/mysite/asgi.py | 16 ++ .../mysite/sample_image.png | Bin 0 -> 83877 bytes .../mysite/settings.py | 126 +++++++++++++ test-django-uwsgi-fileresponse/mysite/urls.py | 24 +++ .../mysite/views.py | 6 + test-django-uwsgi-fileresponse/mysite/wsgi.py | 16 ++ test-django-uwsgi-fileresponse/pyproject.toml | 19 ++ test-django-uwsgi-fileresponse/uv.lock | 170 ++++++++++++++++++ test-django-uwsgi-fileresponse/uwsgi.ini | 12 ++ 14 files changed, 422 insertions(+) create mode 100644 test-django-uwsgi-fileresponse/.python-version create mode 100644 test-django-uwsgi-fileresponse/README.md create mode 100644 test-django-uwsgi-fileresponse/main.py create mode 100755 test-django-uwsgi-fileresponse/manage.py create mode 100644 test-django-uwsgi-fileresponse/mysite/__init__.py create mode 100644 test-django-uwsgi-fileresponse/mysite/asgi.py create mode 100644 test-django-uwsgi-fileresponse/mysite/sample_image.png create mode 100644 test-django-uwsgi-fileresponse/mysite/settings.py create mode 100644 test-django-uwsgi-fileresponse/mysite/urls.py create mode 100644 test-django-uwsgi-fileresponse/mysite/views.py create mode 100644 test-django-uwsgi-fileresponse/mysite/wsgi.py create mode 100644 test-django-uwsgi-fileresponse/pyproject.toml create mode 100644 test-django-uwsgi-fileresponse/uv.lock create mode 100644 test-django-uwsgi-fileresponse/uwsgi.ini diff --git a/test-django-uwsgi-fileresponse/.python-version b/test-django-uwsgi-fileresponse/.python-version new file mode 100644 index 0000000..6324d40 --- /dev/null +++ b/test-django-uwsgi-fileresponse/.python-version @@ -0,0 +1 @@ +3.14 diff --git a/test-django-uwsgi-fileresponse/README.md b/test-django-uwsgi-fileresponse/README.md new file mode 100644 index 0000000..7190a0f --- /dev/null +++ b/test-django-uwsgi-fileresponse/README.md @@ -0,0 +1,4 @@ +# Run command for uWSGI server +`uwsgi --ini uwsgi.ini` + +Visit `http://localhost:8000/get-image/` to test. \ No newline at end of file diff --git a/test-django-uwsgi-fileresponse/main.py b/test-django-uwsgi-fileresponse/main.py new file mode 100644 index 0000000..4a030da --- /dev/null +++ b/test-django-uwsgi-fileresponse/main.py @@ -0,0 +1,6 @@ +def main(): + print("Hello from test-django-uwsgi-fileresponse!") + + +if __name__ == "__main__": + main() diff --git a/test-django-uwsgi-fileresponse/manage.py b/test-django-uwsgi-fileresponse/manage.py new file mode 100755 index 0000000..a7da667 --- /dev/null +++ b/test-django-uwsgi-fileresponse/manage.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python +"""Django's command-line utility for administrative tasks.""" +import os +import sys + + +def main(): + """Run administrative tasks.""" + os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings') + try: + from django.core.management import execute_from_command_line + except ImportError as exc: + raise ImportError( + "Couldn't import Django. Are you sure it's installed and " + "available on your PYTHONPATH environment variable? Did you " + "forget to activate a virtual environment?" + ) from exc + execute_from_command_line(sys.argv) + + +if __name__ == '__main__': + main() diff --git a/test-django-uwsgi-fileresponse/mysite/__init__.py b/test-django-uwsgi-fileresponse/mysite/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/test-django-uwsgi-fileresponse/mysite/asgi.py b/test-django-uwsgi-fileresponse/mysite/asgi.py new file mode 100644 index 0000000..540f6e4 --- /dev/null +++ b/test-django-uwsgi-fileresponse/mysite/asgi.py @@ -0,0 +1,16 @@ +""" +ASGI config for mysite project. + +It exposes the ASGI callable as a module-level variable named ``application``. + +For more information on this file, see +https://docs.djangoproject.com/en/6.0/howto/deployment/asgi/ +""" + +import os + +from django.core.asgi import get_asgi_application + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings') + +application = get_asgi_application() diff --git a/test-django-uwsgi-fileresponse/mysite/sample_image.png b/test-django-uwsgi-fileresponse/mysite/sample_image.png new file mode 100644 index 0000000000000000000000000000000000000000..8bcbd28cb35dafeef6b95d780bc12fdc89bf4ce8 GIT binary patch literal 83877 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 literal 0 HcmV?d00001 diff --git a/test-django-uwsgi-fileresponse/mysite/settings.py b/test-django-uwsgi-fileresponse/mysite/settings.py new file mode 100644 index 0000000..4383fed --- /dev/null +++ b/test-django-uwsgi-fileresponse/mysite/settings.py @@ -0,0 +1,126 @@ +""" +Django settings for mysite project. + +Generated by 'django-admin startproject' using Django 6.0.2. + +For more information on this file, see +https://docs.djangoproject.com/en/6.0/topics/settings/ + +For the full list of settings and their values, see +https://docs.djangoproject.com/en/6.0/ref/settings/ +""" + +import os +from pathlib import Path + +# Build paths inside the project like this: BASE_DIR / 'subdir'. +BASE_DIR = Path(__file__).resolve().parent.parent + + +# Quick-start development settings - unsuitable for production +# See https://docs.djangoproject.com/en/6.0/howto/deployment/checklist/ + +# SECURITY WARNING: keep the secret key used in production secret! +SECRET_KEY = 'django-insecure-fshyd7=m%t_wswrc*)t2(in)^oeim%jh#4!bc&k$bksg8_skdl' + +# SECURITY WARNING: don't run with debug turned on in production! +DEBUG = True + +ALLOWED_HOSTS = [] + + +# Application definition + +INSTALLED_APPS = [ + 'django.contrib.admin', + 'django.contrib.auth', + 'django.contrib.contenttypes', + 'django.contrib.sessions', + 'django.contrib.messages', + 'django.contrib.staticfiles', +] + +MIDDLEWARE = [ + 'django.middleware.security.SecurityMiddleware', + 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.middleware.common.CommonMiddleware', + 'django.middleware.csrf.CsrfViewMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.contrib.messages.middleware.MessageMiddleware', + 'django.middleware.clickjacking.XFrameOptionsMiddleware', +] + +ROOT_URLCONF = 'mysite.urls' + +TEMPLATES = [ + { + 'BACKEND': 'django.template.backends.django.DjangoTemplates', + 'DIRS': [], + 'APP_DIRS': True, + 'OPTIONS': { + 'context_processors': [ + 'django.template.context_processors.request', + 'django.contrib.auth.context_processors.auth', + 'django.contrib.messages.context_processors.messages', + ], + }, + }, +] + +WSGI_APPLICATION = 'mysite.wsgi.application' + + +# Database +# https://docs.djangoproject.com/en/6.0/ref/settings/#databases + +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.sqlite3', + 'NAME': BASE_DIR / 'db.sqlite3', + } +} + + +# Password validation +# https://docs.djangoproject.com/en/6.0/ref/settings/#auth-password-validators + +AUTH_PASSWORD_VALIDATORS = [ + { + 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', + }, +] + + +# Internationalization +# https://docs.djangoproject.com/en/6.0/topics/i18n/ + +LANGUAGE_CODE = 'en-us' + +TIME_ZONE = 'UTC' + +USE_I18N = True + +USE_TZ = True + + +# Static files (CSS, JavaScript, Images) +# https://docs.djangoproject.com/en/6.0/howto/static-files/ + +STATIC_URL = 'static/' + +import sentry_sdk + +sentry_sdk.init( + dsn=os.environ.get("SENTRY_DSN"), + enable_tracing=True, + debug=True, +) \ No newline at end of file diff --git a/test-django-uwsgi-fileresponse/mysite/urls.py b/test-django-uwsgi-fileresponse/mysite/urls.py new file mode 100644 index 0000000..8092426 --- /dev/null +++ b/test-django-uwsgi-fileresponse/mysite/urls.py @@ -0,0 +1,24 @@ +""" +URL configuration for mysite project. + +The `urlpatterns` list routes URLs to views. For more information please see: + https://docs.djangoproject.com/en/6.0/topics/http/urls/ +Examples: +Function views + 1. Add an import: from my_app import views + 2. Add a URL to urlpatterns: path('', views.home, name='home') +Class-based views + 1. Add an import: from other_app.views import Home + 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') +Including another URLconf + 1. Import the include() function: from django.urls import include, path + 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) +""" +from django.contrib import admin +from django.urls import path +from . import views + +urlpatterns = [ + path('admin/', admin.site.urls), + path('get-image/', views.get_image, name='get_image'), +] diff --git a/test-django-uwsgi-fileresponse/mysite/views.py b/test-django-uwsgi-fileresponse/mysite/views.py new file mode 100644 index 0000000..85b91cb --- /dev/null +++ b/test-django-uwsgi-fileresponse/mysite/views.py @@ -0,0 +1,6 @@ +from django.http import FileResponse, HttpResponse +import os + +def get_image(request): + image_path = os.path.join(os.path.dirname(__file__), 'sample_image.png') + return FileResponse(open(image_path, 'rb'), content_type='image/png') diff --git a/test-django-uwsgi-fileresponse/mysite/wsgi.py b/test-django-uwsgi-fileresponse/mysite/wsgi.py new file mode 100644 index 0000000..ba5b07b --- /dev/null +++ b/test-django-uwsgi-fileresponse/mysite/wsgi.py @@ -0,0 +1,16 @@ +""" +WSGI config for mysite project. + +It exposes the WSGI callable as a module-level variable named ``application``. + +For more information on this file, see +https://docs.djangoproject.com/en/6.0/howto/deployment/wsgi/ +""" + +import os + +from django.core.wsgi import get_wsgi_application + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings') + +application = get_wsgi_application() diff --git a/test-django-uwsgi-fileresponse/pyproject.toml b/test-django-uwsgi-fileresponse/pyproject.toml new file mode 100644 index 0000000..62a3c92 --- /dev/null +++ b/test-django-uwsgi-fileresponse/pyproject.toml @@ -0,0 +1,19 @@ +[project] +name = "test-django-uwsgi-fileresponse" +version = "0.1.0" +description = "Add your description here" +readme = "README.md" +requires-python = ">=3.14" +dependencies = [ + "django>=6.0.2", + "sentry-sdk>=2.53.0", + "uwsgi>=2.0.31", +] + +[tool.uv.sources] +sentry-sdk = { path = "../../sentry-python", editable = true } + +[dependency-groups] +dev = [ + "remote-pdb>=2.1.0", +] diff --git a/test-django-uwsgi-fileresponse/uv.lock b/test-django-uwsgi-fileresponse/uv.lock new file mode 100644 index 0000000..6e4d110 --- /dev/null +++ b/test-django-uwsgi-fileresponse/uv.lock @@ -0,0 +1,170 @@ +version = 1 +revision = 3 +requires-python = ">=3.14" + +[[package]] +name = "asgiref" +version = "3.11.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/63/40/f03da1264ae8f7cfdbf9146542e5e7e8100a4c66ab48e791df9a03d3f6c0/asgiref-3.11.1.tar.gz", hash = "sha256:5f184dc43b7e763efe848065441eac62229c9f7b0475f41f80e207a114eda4ce", size = 38550, upload-time = "2026-02-03T13:30:14.33Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5c/0a/a72d10ed65068e115044937873362e6e32fab1b7dce0046aeb224682c989/asgiref-3.11.1-py3-none-any.whl", hash = "sha256:e8667a091e69529631969fd45dc268fa79b99c92c5fcdda727757e52146ec133", size = 24345, upload-time = "2026-02-03T13:30:13.039Z" }, +] + +[[package]] +name = "certifi" +version = "2026.1.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e0/2d/a891ca51311197f6ad14a7ef42e2399f36cf2f9bd44752b3dc4eab60fdc5/certifi-2026.1.4.tar.gz", hash = "sha256:ac726dd470482006e014ad384921ed6438c457018f4b3d204aea4281258b2120", size = 154268, upload-time = "2026-01-04T02:42:41.825Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e6/ad/3cc14f097111b4de0040c83a525973216457bbeeb63739ef1ed275c1c021/certifi-2026.1.4-py3-none-any.whl", hash = "sha256:9943707519e4add1115f44c2bc244f782c0249876bf51b6599fee1ffbedd685c", size = 152900, upload-time = "2026-01-04T02:42:40.15Z" }, +] + +[[package]] +name = "django" +version = "6.0.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "asgiref" }, + { name = "sqlparse" }, + { name = "tzdata", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/26/3e/a1c4207c5dea4697b7a3387e26584919ba987d8f9320f59dc0b5c557a4eb/django-6.0.2.tar.gz", hash = "sha256:3046a53b0e40d4b676c3b774c73411d7184ae2745fe8ce5e45c0f33d3ddb71a7", size = 10886874, upload-time = "2026-02-03T13:50:31.596Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/96/ba/a6e2992bc5b8c688249c00ea48cb1b7a9bc09839328c81dc603671460928/django-6.0.2-py3-none-any.whl", hash = "sha256:610dd3b13d15ec3f1e1d257caedd751db8033c5ad8ea0e2d1219a8acf446ecc6", size = 8339381, upload-time = "2026-02-03T13:50:15.501Z" }, +] + +[[package]] +name = "remote-pdb" +version = "2.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e4/b5/4944cac06fd9fc4a2e168313ec220aa25ed96ce83947b63eea5b4045b22d/remote-pdb-2.1.0.tar.gz", hash = "sha256:2d70c6f41e0eabf0165e8f1be58f82aa7a605aaeab8f2aefeb9ce246431091c1", size = 22295, upload-time = "2020-07-24T13:31:32.985Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/71/c5/d208c66344bb785d800adb61aef512290d3473052b9e7697890f0547aff2/remote_pdb-2.1.0-py2.py3-none-any.whl", hash = "sha256:94f73a92ac1248cf16189211011f97096bdada8a7baac8c79372663bbb57b5d0", size = 6304, upload-time = "2020-07-24T13:31:31.535Z" }, +] + +[[package]] +name = "sentry-sdk" +version = "2.53.0" +source = { editable = "../../sentry-python" } +dependencies = [ + { name = "certifi" }, + { name = "urllib3" }, +] + +[package.metadata] +requires-dist = [ + { name = "aiohttp", marker = "extra == 'aiohttp'", specifier = ">=3.5" }, + { name = "anthropic", marker = "extra == 'anthropic'", specifier = ">=0.16" }, + { name = "apache-beam", marker = "extra == 'beam'", specifier = ">=2.12" }, + { name = "arq", marker = "extra == 'arq'", specifier = ">=0.23" }, + { name = "asttokens", marker = "extra == 'pure-eval'" }, + { name = "asyncpg", marker = "extra == 'asyncpg'", specifier = ">=0.23" }, + { name = "blinker", marker = "extra == 'flask'", specifier = ">=1.1" }, + { name = "blinker", marker = "extra == 'quart'", specifier = ">=1.1" }, + { name = "bottle", marker = "extra == 'bottle'", specifier = ">=0.12.13" }, + { name = "celery", marker = "extra == 'celery'", specifier = ">=3" }, + { name = "celery-redbeat", marker = "extra == 'celery-redbeat'", specifier = ">=2" }, + { name = "certifi" }, + { name = "chalice", marker = "extra == 'chalice'", specifier = ">=1.16.0" }, + { name = "clickhouse-driver", marker = "extra == 'clickhouse-driver'", specifier = ">=0.2.0" }, + { name = "django", marker = "extra == 'django'", specifier = ">=1.8" }, + { name = "executing", marker = "extra == 'pure-eval'" }, + { name = "falcon", marker = "extra == 'falcon'", specifier = ">=1.4" }, + { name = "fastapi", marker = "extra == 'fastapi'", specifier = ">=0.79.0" }, + { name = "flask", marker = "extra == 'flask'", specifier = ">=0.11" }, + { name = "google-genai", marker = "extra == 'google-genai'", specifier = ">=1.29.0" }, + { name = "grpcio", marker = "extra == 'grpcio'", specifier = ">=1.21.1" }, + { name = "httpcore", extras = ["http2"], marker = "extra == 'http2'", specifier = "==1.*" }, + { name = "httpx", marker = "extra == 'httpx'", specifier = ">=0.16.0" }, + { name = "huey", marker = "extra == 'huey'", specifier = ">=2" }, + { name = "huggingface-hub", marker = "extra == 'huggingface-hub'", specifier = ">=0.22" }, + { name = "langchain", marker = "extra == 'langchain'", specifier = ">=0.0.210" }, + { name = "langgraph", marker = "extra == 'langgraph'", specifier = ">=0.6.6" }, + { name = "launchdarkly-server-sdk", marker = "extra == 'launchdarkly'", specifier = ">=9.8.0" }, + { name = "litellm", marker = "extra == 'litellm'", specifier = ">=1.77.5" }, + { name = "litestar", marker = "extra == 'litestar'", specifier = ">=2.0.0" }, + { name = "loguru", marker = "extra == 'loguru'", specifier = ">=0.5" }, + { name = "markupsafe", marker = "extra == 'flask'" }, + { name = "mcp", marker = "extra == 'mcp'", specifier = ">=1.15.0" }, + { name = "openai", marker = "extra == 'openai'", specifier = ">=1.0.0" }, + { name = "openfeature-sdk", marker = "extra == 'openfeature'", specifier = ">=0.7.1" }, + { name = "opentelemetry-distro", marker = "extra == 'opentelemetry'", specifier = ">=0.35b0" }, + { name = "opentelemetry-distro", marker = "extra == 'opentelemetry-experimental'" }, + { name = "opentelemetry-distro", extras = ["otlp"], marker = "extra == 'opentelemetry-otlp'", specifier = ">=0.35b0" }, + { name = "protobuf", marker = "extra == 'grpcio'", specifier = ">=3.8.0" }, + { name = "pure-eval", marker = "extra == 'pure-eval'" }, + { name = "pydantic-ai", marker = "extra == 'pydantic-ai'", specifier = ">=1.0.0" }, + { name = "pymongo", marker = "extra == 'pymongo'", specifier = ">=3.1" }, + { name = "pyspark", marker = "extra == 'pyspark'", specifier = ">=2.4.4" }, + { name = "quart", marker = "extra == 'quart'", specifier = ">=0.16.1" }, + { name = "rq", marker = "extra == 'rq'", specifier = ">=0.6" }, + { name = "sanic", marker = "extra == 'sanic'", specifier = ">=0.8" }, + { name = "sqlalchemy", marker = "extra == 'sqlalchemy'", specifier = ">=1.2" }, + { name = "starlette", marker = "extra == 'starlette'", specifier = ">=0.19.1" }, + { name = "starlite", marker = "extra == 'starlite'", specifier = ">=1.48" }, + { name = "statsig", marker = "extra == 'statsig'", specifier = ">=0.55.3" }, + { name = "tiktoken", marker = "extra == 'openai'", specifier = ">=0.3.0" }, + { name = "tornado", marker = "extra == 'tornado'", specifier = ">=6" }, + { name = "unleashclient", marker = "extra == 'unleash'", specifier = ">=6.0.1" }, + { name = "urllib3", specifier = ">=1.26.11" }, +] +provides-extras = ["aiohttp", "anthropic", "arq", "asyncpg", "beam", "bottle", "celery", "celery-redbeat", "chalice", "clickhouse-driver", "django", "falcon", "fastapi", "flask", "grpcio", "http2", "httpx", "huey", "huggingface-hub", "langchain", "langgraph", "launchdarkly", "litellm", "litestar", "loguru", "mcp", "openai", "openfeature", "opentelemetry", "opentelemetry-experimental", "opentelemetry-otlp", "pure-eval", "pydantic-ai", "pymongo", "pyspark", "quart", "rq", "sanic", "sqlalchemy", "starlette", "starlite", "statsig", "tornado", "unleash", "google-genai"] + +[[package]] +name = "sqlparse" +version = "0.5.5" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/90/76/437d71068094df0726366574cf3432a4ed754217b436eb7429415cf2d480/sqlparse-0.5.5.tar.gz", hash = "sha256:e20d4a9b0b8585fdf63b10d30066c7c94c5d7a7ec47c889a2d83a3caa93ff28e", size = 120815, upload-time = "2025-12-19T07:17:45.073Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/49/4b/359f28a903c13438ef59ebeee215fb25da53066db67b305c125f1c6d2a25/sqlparse-0.5.5-py3-none-any.whl", hash = "sha256:12a08b3bf3eec877c519589833aed092e2444e68240a3577e8e26148acc7b1ba", size = 46138, upload-time = "2025-12-19T07:17:46.573Z" }, +] + +[[package]] +name = "test-django-uwsgi-fileresponse" +version = "0.1.0" +source = { virtual = "." } +dependencies = [ + { name = "django" }, + { name = "sentry-sdk" }, + { name = "uwsgi" }, +] + +[package.dev-dependencies] +dev = [ + { name = "remote-pdb" }, +] + +[package.metadata] +requires-dist = [ + { name = "django", specifier = ">=6.0.2" }, + { name = "sentry-sdk", editable = "../../sentry-python" }, + { name = "uwsgi", specifier = ">=2.0.31" }, +] + +[package.metadata.requires-dev] +dev = [{ name = "remote-pdb", specifier = ">=2.1.0" }] + +[[package]] +name = "tzdata" +version = "2025.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/5e/a7/c202b344c5ca7daf398f3b8a477eeb205cf3b6f32e7ec3a6bac0629ca975/tzdata-2025.3.tar.gz", hash = "sha256:de39c2ca5dc7b0344f2eba86f49d614019d29f060fc4ebc8a417896a620b56a7", size = 196772, upload-time = "2025-12-13T17:45:35.667Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c7/b0/003792df09decd6849a5e39c28b513c06e84436a54440380862b5aeff25d/tzdata-2025.3-py2.py3-none-any.whl", hash = "sha256:06a47e5700f3081aab02b2e513160914ff0694bce9947d6b76ebd6bf57cfc5d1", size = 348521, upload-time = "2025-12-13T17:45:33.889Z" }, +] + +[[package]] +name = "urllib3" +version = "2.6.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c7/24/5f1b3bdffd70275f6661c76461e25f024d5a38a46f04aaca912426a2b1d3/urllib3-2.6.3.tar.gz", hash = "sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed", size = 435556, upload-time = "2026-01-07T16:24:43.925Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/39/08/aaaad47bc4e9dc8c725e68f9d04865dbcb2052843ff09c97b08904852d84/urllib3-2.6.3-py3-none-any.whl", hash = "sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4", size = 131584, upload-time = "2026-01-07T16:24:42.685Z" }, +] + +[[package]] +name = "uwsgi" +version = "2.0.31" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/9f/49/2f57640e889ba509fd1fae10cccec1b58972a07c2724486efba94c5ea448/uwsgi-2.0.31.tar.gz", hash = "sha256:e8f8b350ccc106ff93a65247b9136f529c14bf96b936ac5b264c6ff9d0c76257", size = 822796, upload-time = "2025-10-11T19:17:28.794Z" } diff --git a/test-django-uwsgi-fileresponse/uwsgi.ini b/test-django-uwsgi-fileresponse/uwsgi.ini new file mode 100644 index 0000000..d829a42 --- /dev/null +++ b/test-django-uwsgi-fileresponse/uwsgi.ini @@ -0,0 +1,12 @@ +[uwsgi] +module = mysite.wsgi:application + +http = :8000 +master = true +processes = 1 +threads = 1 + +chdir = . +virtualenv = .venv + +env = DJANGO_SETTINGS_MODULE=mysite.settings