Refs #33916 -- Added tests for serialization of enum.Flag in migrations.

This commit is contained in:
Willem Van Onsem 2022-08-16 07:09:11 +02:00 committed by Mariusz Felisiak
parent 0cbbed49f4
commit 08688bd7dd
1 changed files with 32 additions and 0 deletions

View File

@ -80,6 +80,11 @@ class IntEnum(enum.IntEnum):
B = 2
class IntFlagEnum(enum.IntFlag):
A = 1
B = 2
class OperationWriterTests(SimpleTestCase):
def test_empty_signature(self):
operation = custom_migration_operations.operations.TestOperation()
@ -382,6 +387,33 @@ class WriterTests(SimpleTestCase):
"default=migrations.test_writer.IntEnum['A'])",
)
def test_serialize_enum_flags(self):
self.assertSerializedResultEqual(
IntFlagEnum.A,
(
"migrations.test_writer.IntFlagEnum['A']",
{"import migrations.test_writer"},
),
)
self.assertSerializedResultEqual(
IntFlagEnum.B,
(
"migrations.test_writer.IntFlagEnum['B']",
{"import migrations.test_writer"},
),
)
field = models.IntegerField(
default=IntFlagEnum.A, choices=[(m.value, m) for m in IntFlagEnum]
)
string = MigrationWriter.serialize(field)[0]
self.assertEqual(
string,
"models.IntegerField(choices=["
"(1, migrations.test_writer.IntFlagEnum['A']), "
"(2, migrations.test_writer.IntFlagEnum['B'])], "
"default=migrations.test_writer.IntFlagEnum['A'])",
)
def test_serialize_choices(self):
class TextChoices(models.TextChoices):
A = "A", "A value"