summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAmir Karimi <amk9978@gmail.com>2024-09-12 10:55:24 +0200
committerSarah Boyce <42296566+sarahboyce@users.noreply.github.com>2024-09-12 13:44:28 +0200
commitb2501759eb91edddaeb5ddfccb40a44f39da7798 (patch)
treed55630b7d530d84b003f4b5a7801913c519029f7
parentf4813211e2d8017b56b7447f56ad17df3fae9aa3 (diff)
Refs #29522 -- Improved test coverage of deserializers.
-rw-r--r--tests/fixtures_regress/fixtures/sequence_empty_lines_jsonl.jsonl3
-rw-r--r--tests/fixtures_regress/fixtures/sequence_extra_jsonl.jsonl2
-rw-r--r--tests/fixtures_regress/fixtures/sequence_extra_yaml.yaml17
-rw-r--r--tests/fixtures_regress/tests.py46
4 files changed, 62 insertions, 6 deletions
diff --git a/tests/fixtures_regress/fixtures/sequence_empty_lines_jsonl.jsonl b/tests/fixtures_regress/fixtures/sequence_empty_lines_jsonl.jsonl
new file mode 100644
index 0000000000..c8ac372cab
--- /dev/null
+++ b/tests/fixtures_regress/fixtures/sequence_empty_lines_jsonl.jsonl
@@ -0,0 +1,3 @@
+
+
+{"pk": "1", "model": "fixtures_regress.animal", "fields": {"name": "Eagle", "latin_name": "Aquila", "count": 3, "weight": 1.2}}
diff --git a/tests/fixtures_regress/fixtures/sequence_extra_jsonl.jsonl b/tests/fixtures_regress/fixtures/sequence_extra_jsonl.jsonl
new file mode 100644
index 0000000000..6644eaf95d
--- /dev/null
+++ b/tests/fixtures_regress/fixtures/sequence_extra_jsonl.jsonl
@@ -0,0 +1,2 @@
+{"pk": "1", "model": "fixtures_regress.animal", "fields": {"name": "Eagle", "extra_name": "Super Eagle", "latin_name": "Aquila", "count": 3, "weight": 1.2}}
+{"pk": "1", "model": "fixtures_regress.animal_extra", "fields": {"name": "Nonexistent model", "extra_name": "test for ticket #29522", "latin_name": "Aquila", "count": 3, "weight": 1.2}}
diff --git a/tests/fixtures_regress/fixtures/sequence_extra_yaml.yaml b/tests/fixtures_regress/fixtures/sequence_extra_yaml.yaml
new file mode 100644
index 0000000000..760b2d4275
--- /dev/null
+++ b/tests/fixtures_regress/fixtures/sequence_extra_yaml.yaml
@@ -0,0 +1,17 @@
+- pk: "1"
+ model: fixtures_regress.animal
+ fields:
+ name: Cat
+ extra_name: Super Cat
+ latin_name: Felis catus
+ count: 3
+ weight: 1.2
+
+- pk: "1"
+ model: fixtures_regress.animal_extra
+ fields:
+ name: Nonexistent model
+ extra_name: test for ticket \#29522
+ latin_name: Felis catus
+ count: 3
+ weight: 1.2
diff --git a/tests/fixtures_regress/tests.py b/tests/fixtures_regress/tests.py
index 54d7cac50a..ef79c2f382 100644
--- a/tests/fixtures_regress/tests.py
+++ b/tests/fixtures_regress/tests.py
@@ -96,12 +96,20 @@ class TestFixtures(TestCase):
the serialized data for fields that have been removed
from the database when not ignored.
"""
- with self.assertRaises(DeserializationError):
- management.call_command(
- "loaddata",
- "sequence_extra",
- verbosity=0,
- )
+ for fixture_file in (
+ "sequence_extra",
+ "sequence_extra_jsonl",
+ "sequence_extra_yaml",
+ ):
+ with (
+ self.subTest(fixture_file=fixture_file),
+ self.assertRaises(DeserializationError),
+ ):
+ management.call_command(
+ "loaddata",
+ fixture_file,
+ verbosity=0,
+ )
def test_loaddata_not_found_fields_ignore(self):
"""
@@ -130,6 +138,32 @@ class TestFixtures(TestCase):
)
self.assertEqual(Animal.specimens.all()[0].name, "Wolf")
+ def test_loaddata_not_found_fields_ignore_jsonl(self):
+ management.call_command(
+ "loaddata",
+ "sequence_extra_jsonl",
+ ignore=True,
+ verbosity=0,
+ )
+ self.assertEqual(Animal.specimens.all()[0].name, "Eagle")
+
+ def test_loaddata_not_found_fields_ignore_yaml(self):
+ management.call_command(
+ "loaddata",
+ "sequence_extra_yaml",
+ ignore=True,
+ verbosity=0,
+ )
+ self.assertEqual(Animal.specimens.all()[0].name, "Cat")
+
+ def test_loaddata_empty_lines_jsonl(self):
+ management.call_command(
+ "loaddata",
+ "sequence_empty_lines_jsonl.jsonl",
+ verbosity=0,
+ )
+ self.assertEqual(Animal.specimens.all()[0].name, "Eagle")
+
@skipIfDBFeature("interprets_empty_strings_as_nulls")
def test_pretty_print_xml(self):
"""