|
@@ -2,7 +2,7 @@ from django.core import serializers
|
|
|
from django.db import connection
|
|
|
from django.test import TestCase
|
|
|
|
|
|
-from .models import Child, FKDataNaturalKey, NaturalKeyAnchor
|
|
|
+from .models import FKDataNaturalKey, NaturalKeyAnchor
|
|
|
from .tests import register_tests
|
|
|
|
|
|
|
|
@@ -67,37 +67,6 @@ def natural_key_test(format, self):
|
|
|
self.assertIsNone(books[1].object.pk)
|
|
|
|
|
|
|
|
|
-def natural_pk_mti_test(format, self):
|
|
|
- """
|
|
|
- If serializing objects in a multi-table inheritance relationship using
|
|
|
- natural primary keys, the natural foreign key for the parent is output in
|
|
|
- the fields of the child so it's possible to relate the child to the parent
|
|
|
- when deserializing.
|
|
|
- """
|
|
|
- child_1 = Child.objects.create(parent_data='1', child_data='1')
|
|
|
- child_2 = Child.objects.create(parent_data='2', child_data='2')
|
|
|
-
|
|
|
- string_data = serializers.serialize(
|
|
|
- format,
|
|
|
- [child_1.parent_ptr, child_2.parent_ptr, child_2, child_1],
|
|
|
- use_natural_foreign_keys=True, use_natural_primary_keys=True,
|
|
|
- )
|
|
|
-
|
|
|
- child_1.delete()
|
|
|
- child_2.delete()
|
|
|
-
|
|
|
- for obj in serializers.deserialize(format, string_data):
|
|
|
- obj.save()
|
|
|
-
|
|
|
- children = Child.objects.all()
|
|
|
- self.assertEqual(len(children), 2)
|
|
|
- for child in children:
|
|
|
- # If it's possible to find the superclass from the subclass and it's
|
|
|
- # the correct superclass, it's working.
|
|
|
- self.assertEqual(child.child_data, child.parent_data)
|
|
|
-
|
|
|
-
|
|
|
# Dynamically register tests for each serializer
|
|
|
register_tests(NaturalKeySerializerTests, 'test_%s_natural_key_serializer', natural_key_serializer_test)
|
|
|
register_tests(NaturalKeySerializerTests, 'test_%s_serializer_natural_keys', natural_key_test)
|
|
|
-register_tests(NaturalKeySerializerTests, 'test_%s_serializer_natural_pks_mti', natural_pk_mti_test)
|