Fixed the exception handling when deserializing via generators on Python 2.5 that was introduced in r17469. Also only test the YAML serializer if PyYAML is installed.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@17487 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
c1acda6d8f
commit
7019123d21
|
@ -40,6 +40,8 @@ def Deserializer(stream_or_string, **options):
|
|||
try:
|
||||
for obj in PythonDeserializer(simplejson.load(stream), **options):
|
||||
yield obj
|
||||
except GeneratorExit:
|
||||
raise
|
||||
except Exception, e:
|
||||
# Map to deserializer error
|
||||
raise DeserializationError(e)
|
||||
|
|
|
@ -55,6 +55,8 @@ def Deserializer(stream_or_string, **options):
|
|||
try:
|
||||
for obj in PythonDeserializer(yaml.safe_load(stream), **options):
|
||||
yield obj
|
||||
except GeneratorExit:
|
||||
raise
|
||||
except Exception, e:
|
||||
# Map to deserializer error
|
||||
raise DeserializationError(e)
|
||||
|
|
|
@ -17,12 +17,18 @@ try:
|
|||
except ImportError:
|
||||
from StringIO import StringIO
|
||||
|
||||
try:
|
||||
import yaml
|
||||
except ImportError:
|
||||
yaml = None
|
||||
|
||||
from django.core import serializers
|
||||
from django.core.serializers import SerializerDoesNotExist
|
||||
from django.core.serializers.base import DeserializationError
|
||||
from django.db import connection, models
|
||||
from django.test import TestCase
|
||||
from django.utils.functional import curry
|
||||
from django.utils.unittest import skipUnless
|
||||
|
||||
from .models import (BooleanData, CharData, DateData, DateTimeData, EmailData,
|
||||
FileData, FilePathData, DecimalData, FloatData, IntegerData, IPAddressData,
|
||||
|
@ -396,6 +402,7 @@ class SerializerTests(TestCase):
|
|||
for obj in serializers.deserialize("json", """[{"pk":1}"""):
|
||||
pass
|
||||
|
||||
@skipUnless(yaml, "PyYAML not installed")
|
||||
def test_yaml_deserializer_exception(self):
|
||||
with self.assertRaises(DeserializationError):
|
||||
for obj in serializers.deserialize("yaml", "{"):
|
||||
|
|
Loading…
Reference in New Issue