summaryrefslogtreecommitdiff
path: root/tests/migrations
diff options
context:
space:
mode:
Diffstat (limited to 'tests/migrations')
-rw-r--r--tests/migrations/test_commands.py42
-rw-r--r--tests/migrations/test_migrations_noop/0001_initial.py10
-rw-r--r--tests/migrations/test_migrations_noop/__init__.py0
3 files changed, 51 insertions, 1 deletions
diff --git a/tests/migrations/test_commands.py b/tests/migrations/test_commands.py
index 7ea8267247..a3e1efc924 100644
--- a/tests/migrations/test_commands.py
+++ b/tests/migrations/test_commands.py
@@ -1021,12 +1021,52 @@ class MigrateTests(MigrationTestBase):
@override_settings(
MIGRATION_MODULES={"migrations": "migrations.test_migrations_no_operations"}
)
- def test_migrations_no_operations(self):
+ def test_sqlmigrate_no_operations(self):
err = io.StringIO()
call_command("sqlmigrate", "migrations", "0001_initial", stderr=err)
self.assertEqual(err.getvalue(), "No operations found.\n")
@override_settings(
+ MIGRATION_MODULES={"migrations": "migrations.test_migrations_noop"}
+ )
+ def test_sqlmigrate_noop(self):
+ out = io.StringIO()
+ call_command("sqlmigrate", "migrations", "0001", stdout=out)
+ lines = out.getvalue().splitlines()
+
+ if connection.features.can_rollback_ddl:
+ lines = lines[1:-1]
+ self.assertEqual(
+ lines,
+ [
+ "--",
+ "-- Raw SQL operation",
+ "--",
+ "-- (no-op)",
+ ],
+ )
+
+ @override_settings(
+ MIGRATION_MODULES={"migrations": "migrations.test_migrations_manual_porting"}
+ )
+ def test_sqlmigrate_unrepresentable(self):
+ out = io.StringIO()
+ call_command("sqlmigrate", "migrations", "0002", stdout=out)
+ lines = out.getvalue().splitlines()
+
+ if connection.features.can_rollback_ddl:
+ lines = lines[1:-1]
+ self.assertEqual(
+ lines,
+ [
+ "--",
+ "-- Raw Python operation",
+ "--",
+ "-- THIS OPERATION CANNOT BE WRITTEN AS SQL",
+ ],
+ )
+
+ @override_settings(
INSTALLED_APPS=[
"migrations.migrations_test_apps.migrated_app",
"migrations.migrations_test_apps.migrated_unapplied_app",
diff --git a/tests/migrations/test_migrations_noop/0001_initial.py b/tests/migrations/test_migrations_noop/0001_initial.py
new file mode 100644
index 0000000000..f06ff893ad
--- /dev/null
+++ b/tests/migrations/test_migrations_noop/0001_initial.py
@@ -0,0 +1,10 @@
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+ initial = True
+
+ operations = [
+ migrations.RunSQL(sql="", reverse_sql=""),
+ ]
diff --git a/tests/migrations/test_migrations_noop/__init__.py b/tests/migrations/test_migrations_noop/__init__.py
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/tests/migrations/test_migrations_noop/__init__.py