tox.ini: add a check-migrations.sh script to check migrations on each run (#42504)

This commit is contained in:
Benjamin Dauvergne 2020-05-05 13:18:46 +02:00
parent f04e7bd494
commit 986a0b3ba8
2 changed files with 28 additions and 0 deletions

27
check-migrations.sh Executable file
View File

@ -0,0 +1,27 @@
#!/bin/sh
set -e
trap "rm -f ${TEMPFILE} ${CHECK_MIGRATIONS_SETTINGS}" EXIT
# https://stackoverflow.com/questions/49778988/makemigrations-in-dev-machine-without-database-instance
CHECK_MIGRATIONS_SETTINGS=`tempfile`
cat <<EOF >${CHECK_MIGRATIONS_SETTINGS}
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.dummy',
}
}
EOF
APPS=$(env DJANGO_SETTINGS_MODULE=authentic2.settings python -c 'from django.conf import settings; print(" ".join(p for p in (p.split(".")[-1] for p in settings.INSTALLED_APPS if not p.startswith("django.")) if p not in ["admin", "auth", "contenttypes"]))')
TEMPFILE=`tempfile`
AUTHENTIC2_SETTINGS_FILE=${CHECK_MIGRATIONS_SETTINGS} ./authentic2-ctl makemigrations --dry-run --noinput ${APPS} >${TEMPFILE} 2>&1 || true
if ! grep 'No changes detected' -q ${TEMPFILE}; then
echo '!!! Missing migration detected !!!'
cat ${TEMPFILE}
exit 1
else
exit 0
fi

View File

@ -84,6 +84,7 @@ deps =
commands =
py2: ./getlasso.sh
py3: ./getlasso3.sh
authentic: ./check-migrations.sh
rbac,authentic: py.test {env:FAST:} {env:REUSEDB:} {env:COVERAGE:} {env:JUNIT:} {tty:--sw:} {posargs:{env:TESTS} --random-group}
[testenv:pylint]