MCPcopy
hub / github.com/django/django / forward_ref_fk_test

Function forward_ref_fk_test

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

Source from the content-addressed store, hash-verified

121
122
123def forward_ref_fk_test(self, format):
124 t1 = NaturalKeyThing.objects.create(key="t1")
125 t2 = NaturalKeyThing.objects.create(key="t2", other_thing=t1)
126 t1.other_thing = t2
127 t1.save()
128 string_data = serializers.serialize(
129 format,
130 [t1, t2],
131 use_natural_primary_keys=True,
132 use_natural_foreign_keys=True,
133 )
134 NaturalKeyThing.objects.all().delete()
135 objs_with_deferred_fields = []
136 for obj in serializers.deserialize(
137 format, string_data, handle_forward_references=True
138 ):
139 obj.save()
140 if obj.deferred_fields:
141 objs_with_deferred_fields.append(obj)
142 for obj in objs_with_deferred_fields:
143 obj.save_deferred_fields()
144 t1 = NaturalKeyThing.objects.get(key="t1")
145 t2 = NaturalKeyThing.objects.get(key="t2")
146 self.assertEqual(t1.other_thing, t2)
147 self.assertEqual(t2.other_thing, t1)
148
149
150def forward_ref_fk_with_error_test(self, format):

Callers

nothing calls this directly

Calls 9

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

Tested by

no test coverage detected