"""Regression checks for production static-file delivery.""" from pathlib import Path from django.core.management import call_command from django.test import Client, override_settings from settings import base def test_whitenoise_uses_compressed_manifest_storage(): assert ( base.STATICFILES_STORAGE == "whitenoise.storage.CompressedManifestStaticFilesStorage" ) def test_web_startup_collects_static_files_before_gunicorn(): script_path = Path(__file__).parents[1] / "docker" / "scripts" / "start-web.sh" script = script_path.read_text(encoding="utf-8") assert "python src/manage.py collectstatic --noinput" in script assert script.index("collectstatic --noinput") < script.index("exec gunicorn") def test_whitenoise_serves_collected_swagger_asset(tmp_path): with override_settings(STATIC_ROOT=tmp_path): call_command("collectstatic", interactive=False, verbosity=0) response = Client().get("/static/drf-yasg/style.css") assert response.status_code == 200 assert response["Content-Type"].startswith("text/css")