Ticket #36892: django-lazy-migrations-bug-unit-test.diff

File django-lazy-migrations-bug-unit-test.diff, 2.0 KB (added by Matt Armand, 3 hours ago)
  • tests/migrations/test_writer.py

    diff --git a/tests/migrations/test_writer.py b/tests/migrations/test_writer.py
    index c3f43afcb8..f2b47c1f99 100644
    a b import decimal  
    33import enum
    44import functools
    55import math
     6import operator
    67import os
    78import pathlib
    89import re
    from django.db.migrations.writer import MigrationWriter, OperationWriter  
    2526from django.test import SimpleTestCase, override_settings
    2627from django.test.utils import extend_sys_path
    2728from django.utils.deconstruct import deconstructible
    28 from django.utils.functional import SimpleLazyObject
     29from django.utils.functional import lazy, SimpleLazyObject
    2930from django.utils.timezone import get_default_timezone, get_fixed_timezone
    3031from django.utils.translation import gettext_lazy as _
    3132
    class WriterTests(SimpleTestCase):  
    496497            DATE_1 = 1969, 7, 20, "First date"
    497498            DATE_2 = 1969, 11, 19, "Second date"
    498499
     500        TUPLE_1 = (("A", "A value"),)
     501        TUPLE_2 = (("B", "B value"),)
     502        LAZY_TUPLE = lazy(
     503            lambda: tuple(sorted(TUPLE_1 + TUPLE_2, key=operator.itemgetter(1))), tuple
     504        )()
     505
    499506        self.assertSerializedResultEqual(TextChoices.A, ("'A'", set()))
    500507        self.assertSerializedResultEqual(IntegerChoices.A, ("1", set()))
    501508        self.assertSerializedResultEqual(
    class WriterTests(SimpleTestCase):  
    509516            "models.CharField(choices=[('A', 'A value'), ('B', 'B value')], "
    510517            "default='B')",
    511518        )
     519        field = models.CharField(default=TUPLE_2[0][0], choices=LAZY_TUPLE)
     520        string = MigrationWriter.serialize(field)[0]
     521        self.assertEqual(
     522            string,
     523            "models.CharField(choices=[('A', 'A value'), ('B', 'B value')], "
     524            "default='B')",
     525        )
    512526        field = models.IntegerField(default=IntegerChoices.B, choices=IntegerChoices)
    513527        string = MigrationWriter.serialize(field)[0]
    514528        self.assertEqual(
Back to Top