summaryrefslogtreecommitdiff
path: root/tests/fixtures
diff options
context:
space:
mode:
authorSrinivas Reddy Thatiparthy (శ్రీనివాస్ రెడ్డి తాటిపర్తి) <srinivasreddy@users.noreply.github.com>2017-12-30 22:46:11 +0530
committerTim Graham <timograham@gmail.com>2017-12-30 12:16:11 -0500
commit58ec55b157b3c4cc9dc0a944804f8a719ff4e12f (patch)
tree5bc79c4dd2fe2710389e6b99256b53b0453b8dbe /tests/fixtures
parent51a00749e9d1814acfb6bf8732ecd21f18944083 (diff)
downloaddjango-58ec55b157b3c4cc9dc0a944804f8a719ff4e12f.tar.gz
Fixed #28117 -- Added a helpful message in loaddata when psycopg2 can't load a fixture due to NUL characters.
Diffstat (limited to 'tests/fixtures')
-rw-r--r--tests/fixtures/fixtures/null_character_in_field_value.json10
-rw-r--r--tests/fixtures/tests.py9
2 files changed, 19 insertions, 0 deletions
diff --git a/tests/fixtures/fixtures/null_character_in_field_value.json b/tests/fixtures/fixtures/null_character_in_field_value.json
new file mode 100644
index 0000000000..7b246a0544
--- /dev/null
+++ b/tests/fixtures/fixtures/null_character_in_field_value.json
@@ -0,0 +1,10 @@
+[
+ {
+ "pk": "2",
+ "model": "fixtures.article",
+ "fields": {
+ "headline": "Poker has no place on ESPN\u0000",
+ "pub_date": "2006-06-16 12:00:00"
+ }
+ }
+]
diff --git a/tests/fixtures/tests.py b/tests/fixtures/tests.py
index 477f64ce05..4bdaeefbb0 100644
--- a/tests/fixtures/tests.py
+++ b/tests/fixtures/tests.py
@@ -571,6 +571,15 @@ class FixtureLoadingTests(DumpDataAssertMixin, TestCase):
management.call_command('loaddata', 'invalid.json', verbosity=0)
self.assertIn("Could not load fixtures.Article(pk=1):", cm.exception.args[0])
+ @unittest.skipUnless(connection.vendor == 'postgresql', 'psycopg2 prohibits null characters in data.')
+ def test_loaddata_null_characters_on_postgresql(self):
+ msg = (
+ 'Could not load fixtures.Article(pk=2): '
+ 'A string literal cannot contain NUL (0x00) characters.'
+ )
+ with self.assertRaisesMessage(ValueError, msg):
+ management.call_command('loaddata', 'null_character_in_field_value.json')
+
def test_loaddata_app_option(self):
with self.assertRaisesMessage(CommandError, "No fixture named 'db_fixture_1' found."):
management.call_command('loaddata', 'db_fixture_1', verbosity=0, app_label="someotherapp")