32 lines
1.1 KiB
Python
32 lines
1.1 KiB
Python
"""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")
|