diff options
| author | Roberto Aguilar <roberto@baremetal.io> | 2013-09-06 15:56:48 +0000 |
|---|---|---|
| committer | Roberto Aguilar <roberto@baremetal.io> | 2013-09-06 20:23:27 +0000 |
| commit | d8d61d8260badd87b85accaf5776587f2d355c10 (patch) | |
| tree | 7aa8e04912ff79fbe056ea61237bc66ae3678d54 /tests/serializers | |
| parent | 630eb0564abd228da439d86ad93acb4089d795e7 (diff) | |
Added tests for missing pyyaml.
This test makes sure an YAML import errors are communicated to the
caller rather than stating the serializer does not exist.
Diffstat (limited to 'tests/serializers')
| -rw-r--r-- | tests/serializers/tests.py | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/tests/serializers/tests.py b/tests/serializers/tests.py index 381cc5ed87..b32aa22657 100644 --- a/tests/serializers/tests.py +++ b/tests/serializers/tests.py @@ -14,7 +14,7 @@ except ImportError: from django.conf import settings -from django.core import serializers +from django.core import management, serializers from django.db import transaction, connection from django.test import TestCase, TransactionTestCase, Approximate from django.utils import six @@ -440,6 +440,26 @@ class JsonSerializerTransactionTestCase(SerializersTransactionTestBase, Transact }]""" +@unittest.skipIf(HAS_YAML, "Yaml is installed") +class NoYamlSerializerTestCase(TestCase): + """Not having pyyaml installed provides a misleading error + + #12756 + """ + def test_missing_pyyaml_error_message(self): + """Using yaml serializer without pyyaml raises ImportError""" + jane = Author(name="Jane") + self.assertRaises(ImportError, serializers.serialize, "yaml", [jane]) + + def test_deserializer_pyyaml_error_message(self): + """Using yaml deserializer without pyyaml raises ImportError""" + self.assertRaises(ImportError, serializers.deserialize, "yaml", "") + + def test_missing_pyyaml_error_message(self): + self.assertRaisesRegexp(management.CommandError, r'No module named yaml', + management.call_command, 'dumpdata', format='yaml') + + @unittest.skipUnless(HAS_YAML, "No yaml library detected") class YamlSerializerTestCase(SerializersTestBase, TestCase): serializer_name = "yaml" |
