diff options
Diffstat (limited to 'tests/migrations/test_optimizer.py')
| -rw-r--r-- | tests/migrations/test_optimizer.py | 38 |
1 files changed, 3 insertions, 35 deletions
diff --git a/tests/migrations/test_optimizer.py b/tests/migrations/test_optimizer.py index 3ed30102bf..0a40b50edc 100644 --- a/tests/migrations/test_optimizer.py +++ b/tests/migrations/test_optimizer.py @@ -1,49 +1,17 @@ from django.db import migrations, models from django.db.migrations import operations from django.db.migrations.optimizer import MigrationOptimizer -from django.db.migrations.serializer import serializer_factory from django.db.models.functions import Abs -from django.test import SimpleTestCase from .models import EmptyManager, UnicodeModel +from .test_base import OptimizerTestBase -class OptimizerTests(SimpleTestCase): +class OptimizerTests(OptimizerTestBase): """ - Tests the migration autodetector. + Tests the migration optimizer. """ - def optimize(self, operations, app_label): - """ - Handy shortcut for getting results + number of loops - """ - optimizer = MigrationOptimizer() - return optimizer.optimize(operations, app_label), optimizer._iterations - - def serialize(self, value): - return serializer_factory(value).serialize()[0] - - def assertOptimizesTo( - self, operations, expected, exact=None, less_than=None, app_label=None - ): - result, iterations = self.optimize(operations, app_label or "migrations") - result = [self.serialize(f) for f in result] - expected = [self.serialize(f) for f in expected] - self.assertEqual(expected, result) - if exact is not None and iterations != exact: - raise self.failureException( - "Optimization did not take exactly %s iterations (it took %s)" - % (exact, iterations) - ) - if less_than is not None and iterations >= less_than: - raise self.failureException( - "Optimization did not take less than %s iterations (it took %s)" - % (less_than, iterations) - ) - - def assertDoesNotOptimize(self, operations, **kwargs): - self.assertOptimizesTo(operations, operations, **kwargs) - def test_none_app_label(self): optimizer = MigrationOptimizer() with self.assertRaisesMessage(TypeError, "app_label must be a str"): |
