From 78708d456a32dd0e650ede5a8ab06e654df12fa5 Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Sat, 8 Apr 2023 09:52:54 +0200 Subject: [PATCH] tox.ini: add runuwsgi target (#76419) --- scripts/fixtures/admin.json | 20 ++++++++++++ scripts/runuwsgi_settings.py | 46 ++++++++++++++++++++++++++++ scripts/uwsgi.sh | 59 ++++++++++++++++++++++++++++++++++++ tox.ini | 20 ++++++++++++ 4 files changed, 145 insertions(+) create mode 100644 scripts/fixtures/admin.json create mode 100644 scripts/runuwsgi_settings.py create mode 100755 scripts/uwsgi.sh diff --git a/scripts/fixtures/admin.json b/scripts/fixtures/admin.json new file mode 100644 index 00000000..e8ab9007 --- /dev/null +++ b/scripts/fixtures/admin.json @@ -0,0 +1,20 @@ +[ + { + "model": "auth.user", + "pk": 1, + "fields": { + "password": "pbkdf2_sha256$260000$O4TMYoLPoydHL1h2qE6Rcd$P9/OYa0mPxrgKtYufKWttmIFW+3SfeD8raupkhMbGwo=", + "last_login": "2023-04-08T01:21:28.681Z", + "is_superuser": true, + "username": "admin", + "first_name": "", + "last_name": "", + "email": "admin@example.com", + "is_staff": true, + "is_active": true, + "date_joined": "2023-04-08T01:21:23.751Z", + "groups": [], + "user_permissions": [] + } + } +] diff --git a/scripts/runuwsgi_settings.py b/scripts/runuwsgi_settings.py new file mode 100644 index 00000000..8122b7d0 --- /dev/null +++ b/scripts/runuwsgi_settings.py @@ -0,0 +1,46 @@ +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.postgresql', + 'NAME': 'chrono-runserver', + } +} + +LOGGING = { + 'version': 1, + 'formatters': { + 'stream': { + 'format': '%(asctime)s %(levelname)s %(name)s: %(message)s', + 'datefmt': '%Y-%m-%d %a %H:%M:%S', + }, + }, + 'handlers': { + 'stream': { + 'level': 'DEBUG', + 'class': 'logging.FileHandler', + 'formatter': 'stream', + # fd3 is redirected to stdout in scripts/uwsgi.sh + # to prevent logs to go to uwsgi log file. + 'filename': '/dev/fd/3', + }, + }, + 'loggers': { + # even when debugging seeing SQL queries is too much, activate it + # explicitly using DEBUG_DB + 'django.db': { + 'level': 'INFO', + 'handlers': [], + 'propagate': True, + }, + 'django': { + 'level': 'INFO', + 'handlers': [], + 'propagate': True, + }, + '': { + 'handlers': ['stream'], + 'level': 'INFO', + }, + }, +} + +MIDDLEWARE = list(MIDDLEWARE) + ['testapp.MaDbgMiddleware'] diff --git a/scripts/uwsgi.sh b/scripts/uwsgi.sh new file mode 100755 index 00000000..237e0a2c --- /dev/null +++ b/scripts/uwsgi.sh @@ -0,0 +1,59 @@ +#!/bin/sh + +set -e + +exec 3>&1 + +function silent() { + LOG=`mktemp` + "$@" >$LOG 2>&1 || (tail $LOG; rm $LOG; exit 1) + rm $LOG +} + +mkdir -p $TOX_WORK_DIR/spooler +createdb chrono-runserver >/dev/null 2>&1 || true +silent ./manage.py migrate +silent ./manage.py loaddata scripts/fixtures/admin.json + +set -m + +UWSGI_INI=$TOX_WORK_DIR/uwsgi.ini +cat >$UWSGI_INI </dev/null diff --git a/tox.ini b/tox.ini index 2a4ad61d..ac4a8fe2 100644 --- a/tox.ini +++ b/tox.ini @@ -63,3 +63,23 @@ deps = commands = ./getlasso3.sh pylint: ./pylint.sh chrono/ tests/ + +[testenv:runuwsgi] +usedevelop = True +passenv = + DISPLAY + XAUTHORITY +setenv = + DJANGO_SETTINGS_MODULE=chrono.settings + CHRONO_SETTINGS_FILE=scripts/runuwsgi_settings.py +deps = + django-filter>=2.4,<2.5 + git+https://git.entrouvert.org/entrouvert/hobo.git@wip/76423-uwsgidecorators-corriger-le-pass + git+https://git.entrouvert.org/entrouvert/gadjo.git + git+https://git.entrouvert.org/entrouvert/publik-django-templatetags.git + psycopg2-binary + madbg +allowlist_externals= + bash +commands = + bash scripts/uwsgi.sh