summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/regressiontests/fixtures_regress/fixtures/bad_fixture1.unkn1
-rw-r--r--tests/regressiontests/fixtures_regress/fixtures/bad_fixture2.xml7
-rw-r--r--tests/regressiontests/fixtures_regress/models.py23
3 files changed, 31 insertions, 0 deletions
diff --git a/tests/regressiontests/fixtures_regress/fixtures/bad_fixture1.unkn b/tests/regressiontests/fixtures_regress/fixtures/bad_fixture1.unkn
new file mode 100644
index 0000000000..a8b0a0c56c
--- /dev/null
+++ b/tests/regressiontests/fixtures_regress/fixtures/bad_fixture1.unkn
@@ -0,0 +1 @@
+This data shouldn't load, as it's of an unknown file format. \ No newline at end of file
diff --git a/tests/regressiontests/fixtures_regress/fixtures/bad_fixture2.xml b/tests/regressiontests/fixtures_regress/fixtures/bad_fixture2.xml
new file mode 100644
index 0000000000..87b809fbc6
--- /dev/null
+++ b/tests/regressiontests/fixtures_regress/fixtures/bad_fixture2.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<django-objcts version="1.0">
+ <objct pk="2" model="fixtures.article">
+ <field type="CharField" name="headline">Poker on TV is great!</field>
+ <field type="DateTimeField" name="pub_date">2006-06-16 11:00:00</field>
+ </objct>
+</django-objcts> \ No newline at end of file
diff --git a/tests/regressiontests/fixtures_regress/models.py b/tests/regressiontests/fixtures_regress/models.py
index 144debe05a..59fc167d50 100644
--- a/tests/regressiontests/fixtures_regress/models.py
+++ b/tests/regressiontests/fixtures_regress/models.py
@@ -71,4 +71,27 @@ __test__ = {'API_TESTS':"""
>>> Absolute.load_count
1
+###############################################
+# Test for ticket #4371 -- fixture loading fails silently in testcases
+# Validate that error conditions are caught correctly
+
+# redirect stderr for the next few tests...
+>>> import sys
+>>> savestderr = sys.stderr
+>>> sys.stderr = sys.stdout
+
+# Loading data of an unknown format should fail
+>>> management.call_command('loaddata', 'bad_fixture1.unkn', verbosity=0)
+Problem installing fixture 'bad_fixture1': unkn is not a known serialization format.
+
+# Loading a fixture file with invalid data using explicit filename
+>>> management.call_command('loaddata', 'bad_fixture2.xml', verbosity=0)
+No fixture data found for 'bad_fixture2'. (File format may be invalid.)
+
+# Loading a fixture file with invalid data without file extension
+>>> management.call_command('loaddata', 'bad_fixture2', verbosity=0)
+No fixture data found for 'bad_fixture2'. (File format may be invalid.)
+
+>>> sys.stderr = savestderr
+
"""}