MCPcopy
hub / github.com/django/django / forward_ref_m2m_test

Function forward_ref_m2m_test

tests/serializers/test_natural.py:175–199  ·  view source on GitHub ↗
(self, format)

Source from the content-addressed store, hash-verified

173
174
175def forward_ref_m2m_test(self, format):
176 t1 = NaturalKeyThing.objects.create(key="t1")
177 t2 = NaturalKeyThing.objects.create(key="t2")
178 t3 = NaturalKeyThing.objects.create(key="t3")
179 t1.other_things.set([t2, t3])
180 string_data = serializers.serialize(
181 format,
182 [t1, t2, t3],
183 use_natural_primary_keys=True,
184 use_natural_foreign_keys=True,
185 )
186 NaturalKeyThing.objects.all().delete()
187 objs_with_deferred_fields = []
188 for obj in serializers.deserialize(
189 format, string_data, handle_forward_references=True
190 ):
191 obj.save()
192 if obj.deferred_fields:
193 objs_with_deferred_fields.append(obj)
194 for obj in objs_with_deferred_fields:
195 obj.save_deferred_fields()
196 t1 = NaturalKeyThing.objects.get(key="t1")
197 t2 = NaturalKeyThing.objects.get(key="t2")
198 t3 = NaturalKeyThing.objects.get(key="t3")
199 self.assertCountEqual(t1.other_things.all(), [t2, t3])
200
201
202def forward_ref_m2m_with_error_test(self, format):

Callers

nothing calls this directly

Calls 10

save_deferred_fieldsMethod · 0.80
createMethod · 0.45
setMethod · 0.45
serializeMethod · 0.45
deleteMethod · 0.45
allMethod · 0.45
deserializeMethod · 0.45
saveMethod · 0.45
appendMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected