Refs #26291 -- Added tests for dumpdata with forward references in natural keys.
This commit is contained in:
parent
481d8fc324
commit
fca36f3c98
|
@ -788,22 +788,50 @@ class FixtureTransactionTests(DumpDataAssertMixin, TransactionTestCase):
|
||||||
])
|
])
|
||||||
|
|
||||||
|
|
||||||
class ForwardReferenceTests(TestCase):
|
class ForwardReferenceTests(DumpDataAssertMixin, TestCase):
|
||||||
def test_forward_reference_fk(self):
|
def test_forward_reference_fk_natural_key(self):
|
||||||
management.call_command('loaddata', 'forward_reference_fk.json', verbosity=0)
|
management.call_command(
|
||||||
|
'loaddata',
|
||||||
|
'forward_reference_fk_natural_key.json',
|
||||||
|
verbosity=0,
|
||||||
|
)
|
||||||
self.assertEqual(NaturalKeyThing.objects.count(), 2)
|
self.assertEqual(NaturalKeyThing.objects.count(), 2)
|
||||||
t1, t2 = NaturalKeyThing.objects.all()
|
t1, t2 = NaturalKeyThing.objects.all()
|
||||||
self.assertEqual(t1.other_thing, t2)
|
self.assertEqual(t1.other_thing, t2)
|
||||||
self.assertEqual(t2.other_thing, t1)
|
self.assertEqual(t2.other_thing, t1)
|
||||||
|
self._dumpdata_assert(
|
||||||
|
['fixtures'],
|
||||||
|
'[{"model": "fixtures.naturalkeything", '
|
||||||
|
'"fields": {"key": "t1", "other_thing": ["t2"], "other_things": []}}, '
|
||||||
|
'{"model": "fixtures.naturalkeything", '
|
||||||
|
'"fields": {"key": "t2", "other_thing": ["t1"], "other_things": []}}]',
|
||||||
|
natural_primary_keys=True,
|
||||||
|
natural_foreign_keys=True,
|
||||||
|
)
|
||||||
|
|
||||||
def test_forward_reference_m2m(self):
|
def test_forward_reference_m2m_natural_key(self):
|
||||||
management.call_command('loaddata', 'forward_reference_m2m.json', verbosity=0)
|
management.call_command(
|
||||||
|
'loaddata',
|
||||||
|
'forward_reference_m2m_natural_key.json',
|
||||||
|
verbosity=0,
|
||||||
|
)
|
||||||
self.assertEqual(NaturalKeyThing.objects.count(), 3)
|
self.assertEqual(NaturalKeyThing.objects.count(), 3)
|
||||||
t1 = NaturalKeyThing.objects.get_by_natural_key('t1')
|
t1 = NaturalKeyThing.objects.get_by_natural_key('t1')
|
||||||
self.assertQuerysetEqual(
|
self.assertQuerysetEqual(
|
||||||
t1.other_things.order_by('key'),
|
t1.other_things.order_by('key'),
|
||||||
['<NaturalKeyThing: t2>', '<NaturalKeyThing: t3>']
|
['<NaturalKeyThing: t2>', '<NaturalKeyThing: t3>']
|
||||||
)
|
)
|
||||||
|
self._dumpdata_assert(
|
||||||
|
['fixtures'],
|
||||||
|
'[{"model": "fixtures.naturalkeything", '
|
||||||
|
'"fields": {"key": "t1", "other_thing": null, "other_things": [["t2"], ["t3"]]}}, '
|
||||||
|
'{"model": "fixtures.naturalkeything", '
|
||||||
|
'"fields": {"key": "t2", "other_thing": null, "other_things": []}}, '
|
||||||
|
'{"model": "fixtures.naturalkeything", '
|
||||||
|
'"fields": {"key": "t3", "other_thing": null, "other_things": []}}]',
|
||||||
|
natural_primary_keys=True,
|
||||||
|
natural_foreign_keys=True,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class CircularReferenceTests(DumpDataAssertMixin, TestCase):
|
class CircularReferenceTests(DumpDataAssertMixin, TestCase):
|
||||||
|
|
Loading…
Reference in New Issue