MCPcopy
hub / github.com/django/django / test_options

Method test_options

tests/generic_relations/test_forms.py:135–176  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

133 )
134
135 def test_options(self):
136 TaggedItemFormSet = generic_inlineformset_factory(
137 TaggedItem,
138 can_delete=False,
139 exclude=["tag"],
140 extra=3,
141 )
142 platypus = Animal.objects.create(
143 common_name="Platypus", latin_name="Ornithorhynchus anatinus"
144 )
145 harmless = platypus.tags.create(tag="harmless")
146 mammal = platypus.tags.create(tag="mammal")
147 # Works without a queryset.
148 formset = TaggedItemFormSet(instance=platypus)
149 self.assertEqual(len(formset.forms), 5)
150 self.assertHTMLEqual(
151 formset.forms[0].as_p(),
152 '<input type="hidden" '
153 'name="generic_relations-taggeditem-content_type-object_id-0-id" '
154 'value="%s" '
155 'id="id_generic_relations-taggeditem-content_type-object_id-0-id">'
156 % harmless.pk,
157 )
158 self.assertEqual(formset.forms[0].instance, harmless)
159 self.assertEqual(formset.forms[1].instance, mammal)
160 self.assertIsNone(formset.forms[2].instance.pk)
161 # A queryset can be used to alter display ordering.
162 formset = TaggedItemFormSet(
163 instance=platypus, queryset=TaggedItem.objects.order_by("-tag")
164 )
165 self.assertEqual(len(formset.forms), 5)
166 self.assertEqual(formset.forms[0].instance, mammal)
167 self.assertEqual(formset.forms[1].instance, harmless)
168 self.assertIsNone(formset.forms[2].instance.pk)
169 # A queryset that omits items.
170 formset = TaggedItemFormSet(
171 instance=platypus,
172 queryset=TaggedItem.objects.filter(tag__startswith="harm"),
173 )
174 self.assertEqual(len(formset.forms), 4)
175 self.assertEqual(formset.forms[0].instance, harmless)
176 self.assertIsNone(formset.forms[1].instance.pk)
177
178 def test_get_queryset_ordering(self):
179 """

Callers

nothing calls this directly

Calls 6

assertHTMLEqualMethod · 0.80
as_pMethod · 0.80
order_byMethod · 0.80
createMethod · 0.45
filterMethod · 0.45

Tested by

no test coverage detected