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.
This commit is contained in:
parent
630eb0564a
commit
d8d61d8260
|
@ -1,5 +1,6 @@
|
|||
from __future__ import unicode_literals
|
||||
|
||||
import unittest
|
||||
import warnings
|
||||
|
||||
from django.contrib.sites.models import Site
|
||||
|
|
|
@ -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"
|
||||
|
|
Loading…
Reference in New Issue