From b88ad1d356844da10035af6e09603afdaf84a169 Mon Sep 17 00:00:00 2001 From: David Wobrock Date: Sun, 8 Mar 2020 22:44:34 +0100 Subject: [PATCH] Refs #31318 -- Added tests for inspecting squashed migrations and ambiguous names in sqlmigrate. --- tests/migrations/test_commands.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/tests/migrations/test_commands.py b/tests/migrations/test_commands.py index b98b77cd99..7fd1a68422 100644 --- a/tests/migrations/test_commands.py +++ b/tests/migrations/test_commands.py @@ -695,6 +695,24 @@ class MigrateTests(MigrationTestBase): self.assertNotIn(start_transaction_sql.lower(), queries) self.assertNotIn(connection.ops.end_transaction_sql().lower(), queries) + @override_settings(MIGRATION_MODULES={'migrations': 'migrations.test_migrations_squashed'}) + def test_sqlmigrate_ambiguous_prefix_squashed_migrations(self): + msg = ( + "More than one migration matches '0001' in app 'migrations'. " + "Please be more specific." + ) + with self.assertRaisesMessage(CommandError, msg): + call_command('sqlmigrate', 'migrations', '0001') + + @override_settings(MIGRATION_MODULES={'migrations': 'migrations.test_migrations_squashed'}) + def test_sqlmigrate_squashed_migration(self): + out = io.StringIO() + call_command('sqlmigrate', 'migrations', '0001_squashed_0002', stdout=out) + output = out.getvalue().lower() + self.assertIn('-- create model author', output) + self.assertIn('-- create model book', output) + self.assertNotIn('-- create model tribble', output) + @override_settings(MIGRATION_MODULES={'migrations': 'migrations.test_migrations_no_operations'}) def test_migrations_no_operations(self): err = io.StringIO()