Refs #26291 -- Added tests for dumpdata/loaddata with forward references without natural keys.
This commit is contained in:
parent
fca36f3c98
commit
26799c6503
|
@ -0,0 +1,18 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"model": "fixtures.naturalkeything",
|
||||||
|
"pk": 1,
|
||||||
|
"fields": {
|
||||||
|
"key": "t1",
|
||||||
|
"other_thing": 2
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model": "fixtures.naturalkeything",
|
||||||
|
"pk": 2,
|
||||||
|
"fields": {
|
||||||
|
"key": "t2",
|
||||||
|
"other_thing": 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
|
@ -0,0 +1,24 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"model": "fixtures.naturalkeything",
|
||||||
|
"pk": 1,
|
||||||
|
"fields": {
|
||||||
|
"key": "t1",
|
||||||
|
"other_things": [2, 3]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model": "fixtures.naturalkeything",
|
||||||
|
"pk": 2,
|
||||||
|
"fields": {
|
||||||
|
"key": "t2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model": "fixtures.naturalkeything",
|
||||||
|
"pk": 3,
|
||||||
|
"fields": {
|
||||||
|
"key": "t3"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
|
@ -789,6 +789,20 @@ class FixtureTransactionTests(DumpDataAssertMixin, TransactionTestCase):
|
||||||
|
|
||||||
|
|
||||||
class ForwardReferenceTests(DumpDataAssertMixin, TestCase):
|
class ForwardReferenceTests(DumpDataAssertMixin, TestCase):
|
||||||
|
def test_forward_reference_fk(self):
|
||||||
|
management.call_command('loaddata', 'forward_reference_fk.json', verbosity=0)
|
||||||
|
self.assertEqual(NaturalKeyThing.objects.count(), 2)
|
||||||
|
t1, t2 = NaturalKeyThing.objects.all()
|
||||||
|
self.assertEqual(t1.other_thing, t2)
|
||||||
|
self.assertEqual(t2.other_thing, t1)
|
||||||
|
self._dumpdata_assert(
|
||||||
|
['fixtures'],
|
||||||
|
'[{"model": "fixtures.naturalkeything", "pk": 1, '
|
||||||
|
'"fields": {"key": "t1", "other_thing": 2, "other_things": []}}, '
|
||||||
|
'{"model": "fixtures.naturalkeything", "pk": 2, '
|
||||||
|
'"fields": {"key": "t2", "other_thing": 1, "other_things": []}}]',
|
||||||
|
)
|
||||||
|
|
||||||
def test_forward_reference_fk_natural_key(self):
|
def test_forward_reference_fk_natural_key(self):
|
||||||
management.call_command(
|
management.call_command(
|
||||||
'loaddata',
|
'loaddata',
|
||||||
|
@ -809,6 +823,24 @@ class ForwardReferenceTests(DumpDataAssertMixin, TestCase):
|
||||||
natural_foreign_keys=True,
|
natural_foreign_keys=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def test_forward_reference_m2m(self):
|
||||||
|
management.call_command('loaddata', 'forward_reference_m2m.json', verbosity=0)
|
||||||
|
self.assertEqual(NaturalKeyThing.objects.count(), 3)
|
||||||
|
t1 = NaturalKeyThing.objects.get_by_natural_key('t1')
|
||||||
|
self.assertQuerysetEqual(
|
||||||
|
t1.other_things.order_by('key'),
|
||||||
|
['<NaturalKeyThing: t2>', '<NaturalKeyThing: t3>']
|
||||||
|
)
|
||||||
|
self._dumpdata_assert(
|
||||||
|
['fixtures'],
|
||||||
|
'[{"model": "fixtures.naturalkeything", "pk": 1, '
|
||||||
|
'"fields": {"key": "t1", "other_thing": null, "other_things": [2, 3]}}, '
|
||||||
|
'{"model": "fixtures.naturalkeything", "pk": 2, '
|
||||||
|
'"fields": {"key": "t2", "other_thing": null, "other_things": []}}, '
|
||||||
|
'{"model": "fixtures.naturalkeything", "pk": 3, '
|
||||||
|
'"fields": {"key": "t3", "other_thing": null, "other_things": []}}]',
|
||||||
|
)
|
||||||
|
|
||||||
def test_forward_reference_m2m_natural_key(self):
|
def test_forward_reference_m2m_natural_key(self):
|
||||||
management.call_command(
|
management.call_command(
|
||||||
'loaddata',
|
'loaddata',
|
||||||
|
|
Loading…
Reference in New Issue