fix: set FORCE to 1 in dev env NOCHANGELOG

This commit is contained in:
petitminion 2025-01-10 19:17:58 +00:00
parent 73bd66404b
commit 6a79f048cd
4 changed files with 12 additions and 10 deletions

View File

@ -152,3 +152,6 @@ REST_FRAMEWORK.update(
], ],
} }
) )
# allows makemigrations and superuser creation
FORCE = env("FORCE", default=1)

View File

@ -1,5 +1,4 @@
import os from django.conf import settings
from django.contrib.auth.management.commands.createsuperuser import ( from django.contrib.auth.management.commands.createsuperuser import (
Command as BaseCommand, Command as BaseCommand,
) )
@ -12,7 +11,8 @@ class Command(BaseCommand):
Creating Django Superusers would bypass some of our username checks, which can lead to unexpected behaviour. Creating Django Superusers would bypass some of our username checks, which can lead to unexpected behaviour.
We therefore prohibit the execution of the command. We therefore prohibit the execution of the command.
""" """
if not os.environ.get("FORCE") == "1": force = settings.FORCE
if not force == 1:
raise CommandError( raise CommandError(
"Running createsuperuser on your Funkwhale instance bypasses some of our checks " "Running createsuperuser on your Funkwhale instance bypasses some of our checks "
"which can lead to unexpected behavior of your instance. We therefore suggest to " "which can lead to unexpected behavior of your instance. We therefore suggest to "

View File

@ -1,5 +1,4 @@
import os from django.conf import settings
from django.core.management.base import CommandError from django.core.management.base import CommandError
from django.core.management.commands.makemigrations import Command as BaseCommand from django.core.management.commands.makemigrations import Command as BaseCommand
@ -11,8 +10,8 @@ class Command(BaseCommand):
We ensure the command is disabled, unless a specific env var is provided. We ensure the command is disabled, unless a specific env var is provided.
""" """
force = os.environ.get("FORCE") == "1" force = settings.FORCE
if not force: if not force == 1:
raise CommandError( raise CommandError(
"Running makemigrations on your Funkwhale instance can have desastrous" "Running makemigrations on your Funkwhale instance can have desastrous"
" consequences. This command is disabled, and should only be run in " " consequences. This command is disabled, and should only be run in "

View File

@ -1,6 +1,5 @@
import os
import pytest import pytest
from django.conf import settings
from django.core.management import call_command from django.core.management import call_command
from django.core.management.base import CommandError from django.core.management.base import CommandError
@ -119,12 +118,13 @@ commands = ["createsuperuser", "makemigrations"]
@pytest.mark.parametrize("command", commands) @pytest.mark.parametrize("command", commands)
def test_blocked_commands(command): def test_blocked_commands(command):
with pytest.raises(CommandError): with pytest.raises(CommandError):
setattr(settings, "FORCE", 0)
call_command(command) call_command(command)
@pytest.mark.parametrize("command", commands) @pytest.mark.parametrize("command", commands)
def test_unblocked_commands(command, mocker): def test_unblocked_commands(command, mocker):
mocker.patch.dict(os.environ, {"FORCE": "1"}) setattr(settings, "FORCE", 1)
call_command(command) call_command(command)