diff options
| author | Hasan Ramezani <hasan.r67@gmail.com> | 2019-09-24 23:42:35 +0200 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2019-09-30 10:52:30 +0200 |
| commit | df0c2ac3586a80a5e37cca3bcb2d4e7ed333d28e (patch) | |
| tree | 10d190ceed23a19b4ef05ff2fb543526f0e0b860 /tests/migrations | |
| parent | 30a613aff3c283b30377b678f0c2c7969c221639 (diff) | |
[3.0.x] Fixed #30774 -- Made serialization in migrations use members names for Enums.
Backport of f0adf3b9b7a19cdee05368ff0c0c2d087f011180 from master
Diffstat (limited to 'tests/migrations')
| -rw-r--r-- | tests/migrations/test_writer.py | 46 |
1 files changed, 33 insertions, 13 deletions
diff --git a/tests/migrations/test_writer.py b/tests/migrations/test_writer.py index f97d76e9ad..6295a67992 100644 --- a/tests/migrations/test_writer.py +++ b/tests/migrations/test_writer.py @@ -257,6 +257,10 @@ class WriterTests(SimpleTestCase): A = 'a-value' B = 'value-b' + class TextTranslatedEnum(enum.Enum): + A = _('a-value') + B = _('value-b') + class BinaryEnum(enum.Enum): A = b'a-value' B = b'value-b' @@ -267,15 +271,19 @@ class WriterTests(SimpleTestCase): self.assertSerializedResultEqual( TextEnum.A, - ("migrations.test_writer.TextEnum('a-value')", {'import migrations.test_writer'}) + ("migrations.test_writer.TextEnum['A']", {'import migrations.test_writer'}) + ) + self.assertSerializedResultEqual( + TextTranslatedEnum.A, + ("migrations.test_writer.TextTranslatedEnum['A']", {'import migrations.test_writer'}) ) self.assertSerializedResultEqual( BinaryEnum.A, - ("migrations.test_writer.BinaryEnum(b'a-value')", {'import migrations.test_writer'}) + ("migrations.test_writer.BinaryEnum['A']", {'import migrations.test_writer'}) ) self.assertSerializedResultEqual( IntEnum.B, - ("migrations.test_writer.IntEnum(2)", {'import migrations.test_writer'}) + ("migrations.test_writer.IntEnum['B']", {'import migrations.test_writer'}) ) field = models.CharField(default=TextEnum.B, choices=[(m.value, m) for m in TextEnum]) @@ -283,27 +291,39 @@ class WriterTests(SimpleTestCase): self.assertEqual( string, "models.CharField(choices=[" - "('a-value', migrations.test_writer.TextEnum('a-value')), " - "('value-b', migrations.test_writer.TextEnum('value-b'))], " - "default=migrations.test_writer.TextEnum('value-b'))" + "('a-value', migrations.test_writer.TextEnum['A']), " + "('value-b', migrations.test_writer.TextEnum['B'])], " + "default=migrations.test_writer.TextEnum['B'])" + ) + field = models.CharField( + default=TextTranslatedEnum.A, + choices=[(m.value, m) for m in TextTranslatedEnum], + ) + string = MigrationWriter.serialize(field)[0] + self.assertEqual( + string, + "models.CharField(choices=[" + "('a-value', migrations.test_writer.TextTranslatedEnum['A']), " + "('value-b', migrations.test_writer.TextTranslatedEnum['B'])], " + "default=migrations.test_writer.TextTranslatedEnum['A'])" ) field = models.CharField(default=BinaryEnum.B, choices=[(m.value, m) for m in BinaryEnum]) string = MigrationWriter.serialize(field)[0] self.assertEqual( string, "models.CharField(choices=[" - "(b'a-value', migrations.test_writer.BinaryEnum(b'a-value')), " - "(b'value-b', migrations.test_writer.BinaryEnum(b'value-b'))], " - "default=migrations.test_writer.BinaryEnum(b'value-b'))" + "(b'a-value', migrations.test_writer.BinaryEnum['A']), " + "(b'value-b', migrations.test_writer.BinaryEnum['B'])], " + "default=migrations.test_writer.BinaryEnum['B'])" ) field = models.IntegerField(default=IntEnum.A, choices=[(m.value, m) for m in IntEnum]) string = MigrationWriter.serialize(field)[0] self.assertEqual( string, "models.IntegerField(choices=[" - "(1, migrations.test_writer.IntEnum(1)), " - "(2, migrations.test_writer.IntEnum(2))], " - "default=migrations.test_writer.IntEnum(1))" + "(1, migrations.test_writer.IntEnum['A']), " + "(2, migrations.test_writer.IntEnum['B'])], " + "default=migrations.test_writer.IntEnum['A'])" ) def test_serialize_choices(self): @@ -454,7 +474,7 @@ class WriterTests(SimpleTestCase): # Test a string regex with flag validator = RegexValidator(r'^[0-9]+$', flags=re.S) string = MigrationWriter.serialize(validator)[0] - self.assertEqual(string, "django.core.validators.RegexValidator('^[0-9]+$', flags=re.RegexFlag(16))") + self.assertEqual(string, "django.core.validators.RegexValidator('^[0-9]+$', flags=re.RegexFlag['DOTALL'])") self.serialize_round_trip(validator) # Test message and code |
