summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorPreston Holmes <preston@ptone.com>2012-09-30 16:34:13 +0400
committerPreston Holmes <preston@ptone.com>2012-09-30 23:40:27 -0700
commite7723683dc652613df369d5ca412e8b1217012d3 (patch)
treeac531a7e8bdf7b363c9942951f9be8c5fefce85c /tests
parent7cc4068c4470876c526830778cbdac2fdfd6dc26 (diff)
Fixed #9279 -- Added ignorenonexistent option to loaddata
Thanks to Roman Gladkov for the initial patch and Simon Charette for review.
Diffstat (limited to 'tests')
-rw-r--r--tests/regressiontests/fixtures_regress/fixtures/sequence_extra.json13
-rw-r--r--tests/regressiontests/fixtures_regress/tests.py29
2 files changed, 42 insertions, 0 deletions
diff --git a/tests/regressiontests/fixtures_regress/fixtures/sequence_extra.json b/tests/regressiontests/fixtures_regress/fixtures/sequence_extra.json
new file mode 100644
index 0000000000..03c0f36696
--- /dev/null
+++ b/tests/regressiontests/fixtures_regress/fixtures/sequence_extra.json
@@ -0,0 +1,13 @@
+[
+ {
+ "pk": "1",
+ "model": "fixtures_regress.animal",
+ "fields": {
+ "name": "Lion",
+ "extra_name": "Super Lion",
+ "latin_name": "Panthera leo",
+ "count": 3,
+ "weight": 1.2
+ }
+ }
+]
diff --git a/tests/regressiontests/fixtures_regress/tests.py b/tests/regressiontests/fixtures_regress/tests.py
index d675372c7a..c9b9058dff 100644
--- a/tests/regressiontests/fixtures_regress/tests.py
+++ b/tests/regressiontests/fixtures_regress/tests.py
@@ -5,6 +5,7 @@ from __future__ import absolute_import, unicode_literals
import os
import re
+from django.core.serializers.base import DeserializationError
from django.core import management
from django.core.management.base import CommandError
from django.core.management.commands.dumpdata import sort_dependencies
@@ -22,6 +23,7 @@ from .models import (Animal, Stuff, Absolute, Parent, Child, Article, Widget,
class TestFixtures(TestCase):
+
def animal_pre_save_check(self, signal, sender, instance, **kwargs):
self.pre_save_checks.append(
(
@@ -54,6 +56,33 @@ class TestFixtures(TestCase):
animal.save()
self.assertGreater(animal.id, 1)
+ def test_loaddata_not_found_fields_not_ignore(self):
+ """
+ Test for ticket #9279 -- Error is raised for entries in
+ the serialised 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
+ )
+
+ def test_loaddata_not_found_fields_ignore(self):
+ """
+ Test for ticket #9279 -- Ignores entries in
+ the serialised data for fields that have been removed
+ from the database.
+ """
+ management.call_command(
+ 'loaddata',
+ 'sequence_extra',
+ ignore=True,
+ verbosity=0
+ )
+ self.assertEqual(Animal.specimens.all()[0].name, 'Lion')
+
@skipIfDBFeature('interprets_empty_strings_as_nulls')
def test_pretty_print_xml(self):
"""