summaryrefslogtreecommitdiff
path: root/tests/model_fields/tests.py
diff options
context:
space:
mode:
authordjango-bot <ops@djangoproject.com>2022-02-03 20:24:19 +0100
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2022-02-07 20:37:05 +0100
commit9c19aff7c7561e3a82978a272ecdaad40dda5c00 (patch)
treef0506b668a013d0063e5fba3dbf4863b466713ba /tests/model_fields/tests.py
parentf68fa8b45dfac545cfc4111d4e52804c86db68d3 (diff)
Refs #33476 -- Reformatted code with Black.
Diffstat (limited to 'tests/model_fields/tests.py')
-rw-r--r--tests/model_fields/tests.py197
1 files changed, 104 insertions, 93 deletions
diff --git a/tests/model_fields/tests.py b/tests/model_fields/tests.py
index 86365989f0..eb21d436d8 100644
--- a/tests/model_fields/tests.py
+++ b/tests/model_fields/tests.py
@@ -7,8 +7,15 @@ from django.test import SimpleTestCase, TestCase
from django.utils.functional import lazy
from .models import (
- Bar, Choiceful, Foo, RenamedField, VerboseNameField, Whiz, WhizDelayed,
- WhizIter, WhizIterEmpty,
+ Bar,
+ Choiceful,
+ Foo,
+ RenamedField,
+ VerboseNameField,
+ Whiz,
+ WhizDelayed,
+ WhizIter,
+ WhizIterEmpty,
)
@@ -18,7 +25,6 @@ class Nested:
class BasicFieldTests(SimpleTestCase):
-
def test_show_hidden_initial(self):
"""
Fields with choices respect show_hidden_initial as a kwarg to
@@ -36,14 +42,14 @@ class BasicFieldTests(SimpleTestCase):
"""
__repr__() of a field displays its name.
"""
- f = Foo._meta.get_field('a')
- self.assertEqual(repr(f), '<django.db.models.fields.CharField: a>')
+ f = Foo._meta.get_field("a")
+ self.assertEqual(repr(f), "<django.db.models.fields.CharField: a>")
f = models.fields.CharField()
- self.assertEqual(repr(f), '<django.db.models.fields.CharField>')
+ self.assertEqual(repr(f), "<django.db.models.fields.CharField>")
def test_field_repr_nested(self):
"""__repr__() uses __qualname__ for nested class support."""
- self.assertEqual(repr(Nested.Field()), '<model_fields.tests.Nested.Field>')
+ self.assertEqual(repr(Nested.Field()), "<model_fields.tests.Nested.Field>")
def test_field_name(self):
"""
@@ -51,34 +57,36 @@ class BasicFieldTests(SimpleTestCase):
model's attribute name (modelname).
"""
instance = RenamedField()
- self.assertTrue(hasattr(instance, 'get_fieldname_display'))
- self.assertFalse(hasattr(instance, 'get_modelname_display'))
+ self.assertTrue(hasattr(instance, "get_fieldname_display"))
+ self.assertFalse(hasattr(instance, "get_modelname_display"))
def test_field_verbose_name(self):
m = VerboseNameField
for i in range(1, 22):
- self.assertEqual(m._meta.get_field('field%d' % i).verbose_name, 'verbose field%d' % i)
+ self.assertEqual(
+ m._meta.get_field("field%d" % i).verbose_name, "verbose field%d" % i
+ )
- self.assertEqual(m._meta.get_field('id').verbose_name, 'verbose pk')
+ self.assertEqual(m._meta.get_field("id").verbose_name, "verbose pk")
def test_choices_form_class(self):
"""Can supply a custom choices form class to Field.formfield()"""
- choices = [('a', 'a')]
+ choices = [("a", "a")]
field = models.CharField(choices=choices)
klass = forms.TypedMultipleChoiceField
self.assertIsInstance(field.formfield(choices_form_class=klass), klass)
def test_formfield_disabled(self):
"""Field.formfield() sets disabled for fields with choices."""
- field = models.CharField(choices=[('a', 'b')])
+ field = models.CharField(choices=[("a", "b")])
form_field = field.formfield(disabled=True)
self.assertIs(form_field.disabled, True)
def test_field_str(self):
f = models.Field()
- self.assertEqual(str(f), '<django.db.models.fields.Field>')
- f = Foo._meta.get_field('a')
- self.assertEqual(str(f), 'model_fields.Foo.a')
+ self.assertEqual(str(f), "<django.db.models.fields.Field>")
+ f = Foo._meta.get_field("a")
+ self.assertEqual(str(f), "model_fields.Foo.a")
def test_field_ordering(self):
"""Fields are ordered based on their creation."""
@@ -88,11 +96,11 @@ class BasicFieldTests(SimpleTestCase):
self.assertLess(f2, f1)
self.assertGreater(f3, f1)
self.assertIsNotNone(f1)
- self.assertNotIn(f2, (None, 1, ''))
+ self.assertNotIn(f2, (None, 1, ""))
def test_field_instance_is_picklable(self):
"""Field instances can be pickled."""
- field = models.Field(max_length=100, default='a string')
+ field = models.Field(max_length=100, default="a string")
# Must be picklable with this cached property populated (#28188).
field._get_default
pickle.dumps(field)
@@ -100,10 +108,11 @@ class BasicFieldTests(SimpleTestCase):
def test_deconstruct_nested_field(self):
"""deconstruct() uses __qualname__ for nested class support."""
name, path, args, kwargs = Nested.Field().deconstruct()
- self.assertEqual(path, 'model_fields.tests.Nested.Field')
+ self.assertEqual(path, "model_fields.tests.Nested.Field")
def test_abstract_inherited_fields(self):
"""Field instances from abstract models are not equal."""
+
class AbstractModel(models.Model):
field = models.IntegerField()
@@ -116,9 +125,9 @@ class BasicFieldTests(SimpleTestCase):
class InheritAbstractModel2(AbstractModel):
pass
- abstract_model_field = AbstractModel._meta.get_field('field')
- inherit1_model_field = InheritAbstractModel1._meta.get_field('field')
- inherit2_model_field = InheritAbstractModel2._meta.get_field('field')
+ abstract_model_field = AbstractModel._meta.get_field("field")
+ inherit1_model_field = InheritAbstractModel1._meta.get_field("field")
+ inherit2_model_field = InheritAbstractModel2._meta.get_field("field")
self.assertNotEqual(abstract_model_field, inherit1_model_field)
self.assertNotEqual(abstract_model_field, inherit2_model_field)
@@ -139,25 +148,24 @@ class BasicFieldTests(SimpleTestCase):
class ChoicesTests(SimpleTestCase):
-
@classmethod
def setUpClass(cls):
super().setUpClass()
- cls.no_choices = Choiceful._meta.get_field('no_choices')
- cls.empty_choices = Choiceful._meta.get_field('empty_choices')
- cls.empty_choices_bool = Choiceful._meta.get_field('empty_choices_bool')
- cls.empty_choices_text = Choiceful._meta.get_field('empty_choices_text')
- cls.with_choices = Choiceful._meta.get_field('with_choices')
+ cls.no_choices = Choiceful._meta.get_field("no_choices")
+ cls.empty_choices = Choiceful._meta.get_field("empty_choices")
+ cls.empty_choices_bool = Choiceful._meta.get_field("empty_choices_bool")
+ cls.empty_choices_text = Choiceful._meta.get_field("empty_choices_text")
+ cls.with_choices = Choiceful._meta.get_field("with_choices")
def test_choices(self):
self.assertIsNone(self.no_choices.choices)
self.assertEqual(self.empty_choices.choices, ())
- self.assertEqual(self.with_choices.choices, [(1, 'A')])
+ self.assertEqual(self.with_choices.choices, [(1, "A")])
def test_flatchoices(self):
self.assertEqual(self.no_choices.flatchoices, [])
self.assertEqual(self.empty_choices.flatchoices, [])
- self.assertEqual(self.with_choices.flatchoices, [(1, 'A')])
+ self.assertEqual(self.with_choices.flatchoices, [(1, "A")])
def test_check(self):
self.assertEqual(Choiceful.check(), [])
@@ -175,7 +183,9 @@ class ChoicesTests(SimpleTestCase):
no_choices_formfield = self.no_choices.formfield()
self.assertIsInstance(no_choices_formfield, forms.IntegerField)
fields = (
- self.empty_choices, self.with_choices, self.empty_choices_bool,
+ self.empty_choices,
+ self.with_choices,
+ self.empty_choices_bool,
self.empty_choices_text,
)
for field in fields:
@@ -184,163 +194,164 @@ class ChoicesTests(SimpleTestCase):
class GetFieldDisplayTests(SimpleTestCase):
-
def test_choices_and_field_display(self):
"""
get_choices() interacts with get_FIELD_display() to return the expected
values.
"""
- self.assertEqual(Whiz(c=1).get_c_display(), 'First') # A nested value
- self.assertEqual(Whiz(c=0).get_c_display(), 'Other') # A top level value
- self.assertEqual(Whiz(c=9).get_c_display(), 9) # Invalid value
- self.assertIsNone(Whiz(c=None).get_c_display()) # Blank value
- self.assertEqual(Whiz(c='').get_c_display(), '') # Empty value
- self.assertEqual(WhizDelayed(c=0).get_c_display(), 'Other') # Delayed choices
+ self.assertEqual(Whiz(c=1).get_c_display(), "First") # A nested value
+ self.assertEqual(Whiz(c=0).get_c_display(), "Other") # A top level value
+ self.assertEqual(Whiz(c=9).get_c_display(), 9) # Invalid value
+ self.assertIsNone(Whiz(c=None).get_c_display()) # Blank value
+ self.assertEqual(Whiz(c="").get_c_display(), "") # Empty value
+ self.assertEqual(WhizDelayed(c=0).get_c_display(), "Other") # Delayed choices
def test_get_FIELD_display_translated(self):
"""A translated display value is coerced to str."""
val = Whiz(c=5).get_c_display()
self.assertIsInstance(val, str)
- self.assertEqual(val, 'translated')
+ self.assertEqual(val, "translated")
def test_overriding_FIELD_display(self):
class FooBar(models.Model):
- foo_bar = models.IntegerField(choices=[(1, 'foo'), (2, 'bar')])
+ foo_bar = models.IntegerField(choices=[(1, "foo"), (2, "bar")])
def get_foo_bar_display(self):
- return 'something'
+ return "something"
f = FooBar(foo_bar=1)
- self.assertEqual(f.get_foo_bar_display(), 'something')
+ self.assertEqual(f.get_foo_bar_display(), "something")
def test_overriding_inherited_FIELD_display(self):
class Base(models.Model):
- foo = models.CharField(max_length=254, choices=[('A', 'Base A')])
+ foo = models.CharField(max_length=254, choices=[("A", "Base A")])
class Meta:
abstract = True
class Child(Base):
- foo = models.CharField(max_length=254, choices=[('A', 'Child A'), ('B', 'Child B')])
+ foo = models.CharField(
+ max_length=254, choices=[("A", "Child A"), ("B", "Child B")]
+ )
- self.assertEqual(Child(foo='A').get_foo_display(), 'Child A')
- self.assertEqual(Child(foo='B').get_foo_display(), 'Child B')
+ self.assertEqual(Child(foo="A").get_foo_display(), "Child A")
+ self.assertEqual(Child(foo="B").get_foo_display(), "Child B")
def test_iterator_choices(self):
"""
get_choices() works with Iterators.
"""
- self.assertEqual(WhizIter(c=1).c, 1) # A nested value
- self.assertEqual(WhizIter(c=9).c, 9) # Invalid value
- self.assertIsNone(WhizIter(c=None).c) # Blank value
- self.assertEqual(WhizIter(c='').c, '') # Empty value
+ self.assertEqual(WhizIter(c=1).c, 1) # A nested value
+ self.assertEqual(WhizIter(c=9).c, 9) # Invalid value
+ self.assertIsNone(WhizIter(c=None).c) # Blank value
+ self.assertEqual(WhizIter(c="").c, "") # Empty value
def test_empty_iterator_choices(self):
"""
get_choices() works with empty iterators.
"""
- self.assertEqual(WhizIterEmpty(c="a").c, "a") # A nested value
- self.assertEqual(WhizIterEmpty(c="b").c, "b") # Invalid value
- self.assertIsNone(WhizIterEmpty(c=None).c) # Blank value
- self.assertEqual(WhizIterEmpty(c='').c, '') # Empty value
+ self.assertEqual(WhizIterEmpty(c="a").c, "a") # A nested value
+ 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_empty_choices(self):
choices = []
f = models.CharField(choices=choices)
self.assertEqual(f.get_choices(include_blank=False), choices)
def test_blank_in_choices(self):
- choices = [('', '<><>'), ('a', 'A')]
+ choices = [("", "<><>"), ("a", "A")]
f = models.CharField(choices=choices)
self.assertEqual(f.get_choices(include_blank=True), choices)
def test_blank_in_grouped_choices(self):
choices = [
- ('f', 'Foo'),
- ('b', 'Bar'),
- ('Group', (
- ('', 'No Preference'),
- ('fg', 'Foo'),
- ('bg', 'Bar'),
- )),
+ ("f", "Foo"),
+ ("b", "Bar"),
+ (
+ "Group",
+ (
+ ("", "No Preference"),
+ ("fg", "Foo"),
+ ("bg", "Bar"),
+ ),
+ ),
]
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], ('', '---------'))
+ f = models.CharField(choices=[(lazy_func("group"), (("a", "A"), ("b", "B")))])
+ self.assertEqual(f.get_choices(include_blank=True)[0], ("", "---------"))
class GetChoicesOrderingTests(TestCase):
-
@classmethod
def setUpTestData(cls):
- cls.foo1 = Foo.objects.create(a='a', d='12.35')
- cls.foo2 = Foo.objects.create(a='b', d='12.34')
- cls.bar1 = Bar.objects.create(a=cls.foo1, b='b')
- cls.bar2 = Bar.objects.create(a=cls.foo2, b='a')
- cls.field = Bar._meta.get_field('a')
+ cls.foo1 = Foo.objects.create(a="a", d="12.35")
+ cls.foo2 = Foo.objects.create(a="b", d="12.34")
+ cls.bar1 = Bar.objects.create(a=cls.foo1, b="b")
+ cls.bar2 = Bar.objects.create(a=cls.foo2, b="a")
+ cls.field = Bar._meta.get_field("a")
def assertChoicesEqual(self, choices, objs):
self.assertEqual(choices, [(obj.pk, str(obj)) for obj in objs])
def test_get_choices(self):
self.assertChoicesEqual(
- self.field.get_choices(include_blank=False, ordering=('a',)),
- [self.foo1, self.foo2]
+ self.field.get_choices(include_blank=False, ordering=("a",)),
+ [self.foo1, self.foo2],
)
self.assertChoicesEqual(
- self.field.get_choices(include_blank=False, ordering=('-a',)),
- [self.foo2, self.foo1]
+ self.field.get_choices(include_blank=False, ordering=("-a",)),
+ [self.foo2, self.foo1],
)
def test_get_choices_default_ordering(self):
- self.addCleanup(setattr, Foo._meta, 'ordering', Foo._meta.ordering)
- Foo._meta.ordering = ('d',)
+ self.addCleanup(setattr, Foo._meta, "ordering", Foo._meta.ordering)
+ Foo._meta.ordering = ("d",)
self.assertChoicesEqual(
- self.field.get_choices(include_blank=False),
- [self.foo2, self.foo1]
+ self.field.get_choices(include_blank=False), [self.foo2, self.foo1]
)
def test_get_choices_reverse_related_field(self):
self.assertChoicesEqual(
- self.field.remote_field.get_choices(include_blank=False, ordering=('a',)),
- [self.bar1, self.bar2]
+ self.field.remote_field.get_choices(include_blank=False, ordering=("a",)),
+ [self.bar1, self.bar2],
)
self.assertChoicesEqual(
- self.field.remote_field.get_choices(include_blank=False, ordering=('-a',)),
- [self.bar2, self.bar1]
+ self.field.remote_field.get_choices(include_blank=False, ordering=("-a",)),
+ [self.bar2, self.bar1],
)
def test_get_choices_reverse_related_field_default_ordering(self):
- self.addCleanup(setattr, Bar._meta, 'ordering', Bar._meta.ordering)
- Bar._meta.ordering = ('b',)
+ self.addCleanup(setattr, Bar._meta, "ordering", Bar._meta.ordering)
+ Bar._meta.ordering = ("b",)
self.assertChoicesEqual(
self.field.remote_field.get_choices(include_blank=False),
- [self.bar2, self.bar1]
+ [self.bar2, self.bar1],
)
class GetChoicesLimitChoicesToTests(TestCase):
@classmethod
def setUpTestData(cls):
- cls.foo1 = Foo.objects.create(a='a', d='12.34')
- cls.foo2 = Foo.objects.create(a='b', d='12.34')
- cls.bar1 = Bar.objects.create(a=cls.foo1, b='b')
- cls.bar2 = Bar.objects.create(a=cls.foo2, b='a')
- cls.field = Bar._meta.get_field('a')
+ cls.foo1 = Foo.objects.create(a="a", d="12.34")
+ cls.foo2 = Foo.objects.create(a="b", d="12.34")
+ cls.bar1 = Bar.objects.create(a=cls.foo1, b="b")
+ cls.bar2 = Bar.objects.create(a=cls.foo2, b="a")
+ cls.field = Bar._meta.get_field("a")
def assertChoicesEqual(self, choices, objs):
self.assertEqual(choices, [(obj.pk, str(obj)) for obj in objs])
def test_get_choices(self):
self.assertChoicesEqual(
- self.field.get_choices(include_blank=False, limit_choices_to={'a': 'a'}),
+ self.field.get_choices(include_blank=False, limit_choices_to={"a": "a"}),
[self.foo1],
)
self.assertChoicesEqual(
@@ -351,7 +362,7 @@ class GetChoicesLimitChoicesToTests(TestCase):
def test_get_choices_reverse_related_field(self):
field = self.field.remote_field
self.assertChoicesEqual(
- field.get_choices(include_blank=False, limit_choices_to={'b': 'b'}),
+ field.get_choices(include_blank=False, limit_choices_to={"b": "b"}),
[self.bar1],
)
self.assertChoicesEqual(