diff options
Diffstat (limited to 'manage.py')
-rwxr-xr-x | manage.py | 16 |
1 files changed, 16 insertions, 0 deletions
@@ -3,10 +3,26 @@ import os import sys +# List of settings files that should guard against running certain commands +GUARDED_ENVIRONMENTS = [ + "production", +] + +GUARDED_COMMANDS =[ + "test", +] + def main(): """Run administrative tasks.""" os.environ.setdefault("DJANGO_SETTINGS_MODULE", "takahe.settings.production") + + # Guard against running tests in arbitrary environments + env_name = os.environ["DJANGO_SETTINGS_MODULE"].rsplit(".", 1)[-1] + if env_name in GUARDED_ENVIRONMENTS: + for cmd in sys.argv: + if cmd in GUARDED_COMMANDS: + raise Exception(f"Cannot run {cmd} in {env_name}") try: from django.core.management import execute_from_command_line except ImportError as exc: |