diff options
Diffstat (limited to 'tests/model_fields/tests.py')
| -rw-r--r-- | tests/model_fields/tests.py | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/tests/model_fields/tests.py b/tests/model_fields/tests.py index ab8ccd8b4c..fb0098a262 100644 --- a/tests/model_fields/tests.py +++ b/tests/model_fields/tests.py @@ -3,6 +3,7 @@ import pickle from django import forms from django.db import models from django.test import SimpleTestCase, TestCase +from django.utils.functional import lazy from .models import ( Foo, RenamedField, VerboseNameField, Whiz, WhizIter, WhizIterEmpty, @@ -130,3 +131,16 @@ class ChoicesTests(SimpleTestCase): self.assertEqual(WhizIterEmpty(c="b").c, "b") # Invalid value self.assertIsNone(WhizIterEmpty(c=None).c) # Blank value self.assertEqual(WhizIterEmpty(c='').c, '') # Empty value + + +class GetChoicesTests(SimpleTestCase): + + def test_blank_in_choices(self): + choices = [('', '<><>'), ('a', 'A')] + f = models.CharField(choices=choices) + self.assertEqual(f.get_choices(include_blank=True), choices) + + def test_lazy_strings_not_evaluated(self): + lazy_func = lazy(lambda x: 0 / 0, int) # raises ZeroDivisionError if evaluated. + f = models.CharField(choices=[(lazy_func('group'), (('a', 'A'), ('b', 'B')))]) + self.assertEqual(f.get_choices(include_blank=True)[0], ('', '---------')) |
