diff options
author | Srinivas Reddy Thatiparthy (శ్రీనివాస్ రెడ్డి తాటిపర్తి) <srinivasreddy@users.noreply.github.com> | 2017-12-30 22:46:11 +0530 |
---|---|---|
committer | Tim Graham <timograham@gmail.com> | 2017-12-30 12:16:11 -0500 |
commit | 58ec55b157b3c4cc9dc0a944804f8a719ff4e12f (patch) | |
tree | 5bc79c4dd2fe2710389e6b99256b53b0453b8dbe /tests/fixtures | |
parent | 51a00749e9d1814acfb6bf8732ecd21f18944083 (diff) | |
download | django-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.json | 10 | ||||
-rw-r--r-- | tests/fixtures/tests.py | 9 |
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") |