diff options
| author | Matthijs Kooijman <matthijs@stdin.nl> | 2019-12-20 20:49:56 +0100 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2020-01-20 14:39:02 +0100 |
| commit | 2a2ea4ee18fdcf2c95bf6435bc63b74623e3085b (patch) | |
| tree | 32c7c87c71535a8493c07e2073f1bfcd1aa7e24d /tests/test_runner | |
| parent | 26be703fe679a58bbdccf37a276a9c430ccb29f7 (diff) | |
Refs #31117 -- Made various tests properly handle unexpected databases aliases.
- Used selected "databases" instead of django.db.connections.
- Made routers in tests.migrations skip migrations on unexpected
databases.
- Added DiscoverRunnerGetDatabasesTests.assertSkippedDatabases() hook
which properly asserts messages about skipped databases.
Diffstat (limited to 'tests/test_runner')
| -rw-r--r-- | tests/test_runner/test_discover_runner.py | 33 |
1 files changed, 20 insertions, 13 deletions
diff --git a/tests/test_runner/test_discover_runner.py b/tests/test_runner/test_discover_runner.py index 186dc52a44..61af22d818 100644 --- a/tests/test_runner/test_discover_runner.py +++ b/tests/test_runner/test_discover_runner.py @@ -308,6 +308,15 @@ class DiscoverRunnerGetDatabasesTests(SimpleTestCase): databases = self.runner.get_databases(suite) return databases, stdout.getvalue() + def assertSkippedDatabases(self, test_labels, expected_databases): + databases, output = self.get_databases(test_labels) + self.assertEqual(databases, expected_databases) + skipped_databases = set(connections) - expected_databases + if skipped_databases: + self.assertIn(self.skip_msg + ', '.join(sorted(skipped_databases)), output) + else: + self.assertNotIn(self.skip_msg, output) + def test_mixed(self): databases, output = self.get_databases(['test_runner_apps.databases.tests']) self.assertEqual(databases, set(connections)) @@ -319,24 +328,22 @@ class DiscoverRunnerGetDatabasesTests(SimpleTestCase): self.assertNotIn(self.skip_msg, output) def test_default_and_other(self): - databases, output = self.get_databases([ + self.assertSkippedDatabases([ 'test_runner_apps.databases.tests.DefaultDatabaseTests', 'test_runner_apps.databases.tests.OtherDatabaseTests', - ]) - self.assertEqual(databases, set(connections)) - self.assertNotIn(self.skip_msg, output) + ], {'default', 'other'}) def test_default_only(self): - databases, output = self.get_databases(['test_runner_apps.databases.tests.DefaultDatabaseTests']) - self.assertEqual(databases, {'default'}) - self.assertIn(self.skip_msg + 'other', output) + self.assertSkippedDatabases([ + 'test_runner_apps.databases.tests.DefaultDatabaseTests', + ], {'default'}) def test_other_only(self): - databases, output = self.get_databases(['test_runner_apps.databases.tests.OtherDatabaseTests']) - self.assertEqual(databases, {'other'}) - self.assertIn(self.skip_msg + 'default', output) + self.assertSkippedDatabases([ + 'test_runner_apps.databases.tests.OtherDatabaseTests' + ], {'other'}) def test_no_databases_required(self): - databases, output = self.get_databases(['test_runner_apps.databases.tests.NoDatabaseTests']) - self.assertEqual(databases, set()) - self.assertIn(self.skip_msg + 'default, other', output) + self.assertSkippedDatabases([ + 'test_runner_apps.databases.tests.NoDatabaseTests' + ], set()) |
