Files
django-migration-linter/tests/functional/test_lintmigrations_command.py

44 lines
1.5 KiB
Python

from __future__ import annotations
from unittest.mock import patch
from django.core.management import call_command
from django.test import TransactionTestCase
from django.test.utils import override_settings
class LintMigrationsCommandTestCase(TransactionTestCase):
databases = {"default", "sqlite"}
def setUp(self):
call_command("migrate", "app_unique_together", "0002")
self.addCleanup(call_command, "migrate", "app_unique_together")
super().setUp()
def test_plain(self):
with self.assertRaises(SystemExit):
call_command("lintmigrations")
def test_config_file_app_label(self):
with patch(
"django_migration_linter.management.commands.lintmigrations.Command.read_config_file"
) as config_fn:
config_fn.return_value = {"app_label": "app_correct"}
call_command("lintmigrations")
def test_command_line_app_label(self):
call_command("lintmigrations", app_label="app_correct")
def test_command_line_and_config_file_app_label(self):
with patch(
"django_migration_linter.management.commands.lintmigrations.Command.read_config_file"
) as config_fn:
config_fn.return_value = {"app_label": "app_correct"}
with self.assertRaises(SystemExit):
call_command("lintmigrations", app_label="app_drop_table")
@override_settings(MIGRATION_LINTER_OPTIONS={"app_label": "app_correct"})
def test_django_settings_option(self):
call_command("lintmigrations")