Fix YAML parser bug

This commit is contained in:
Tom Christie 2012-02-21 22:09:05 +00:00
parent ca9465f11e
commit 9277f438cb
2 changed files with 39 additions and 40 deletions

View File

@ -92,8 +92,7 @@ class JSONParser(BaseParser):
{'detail': 'JSON parse error - %s' % unicode(exc)}) {'detail': 'JSON parse error - %s' % unicode(exc)})
if yaml: class YAMLParser(BaseParser):
class YAMLParser(BaseParser):
""" """
Parses YAML-serialized data. Parses YAML-serialized data.
""" """
@ -109,11 +108,9 @@ if yaml:
""" """
try: try:
return (yaml.safe_load(stream), None) return (yaml.safe_load(stream), None)
except ValueError, exc: except (ValueError, yaml.parser.ParserError), exc:
raise ErrorResponse(status.HTTP_400_BAD_REQUEST, content = {'detail': 'YAML parse error - %s' % unicode(exc)}
{'detail': 'YAML parse error - %s' % unicode(exc)}) raise ErrorResponse(status.HTTP_400_BAD_REQUEST, content)
else:
YAMLParser = None
class PlainTextParser(BaseParser): class PlainTextParser(BaseParser):
@ -248,5 +245,8 @@ DEFAULT_PARSERS = (
XMLParser XMLParser
) )
if YAMLParser: if yaml:
DEFAULT_PARSERS += (YAMLParser,) DEFAULT_PARSERS += (YAMLParser, )
else:
YAMLParser = None

View File

@ -152,8 +152,7 @@ class XMLRenderer(BaseRenderer):
return dict2xml(obj) return dict2xml(obj)
if yaml: class YAMLRenderer(BaseRenderer):
class YAMLRenderer(BaseRenderer):
""" """
Renderer which serializes to YAML. Renderer which serializes to YAML.
""" """
@ -169,8 +168,6 @@ if yaml:
return '' return ''
return yaml.safe_dump(obj) return yaml.safe_dump(obj)
else:
YAMLRenderer = None
class TemplateRenderer(BaseRenderer): class TemplateRenderer(BaseRenderer):
@ -409,5 +406,7 @@ DEFAULT_RENDERERS = (
XMLRenderer XMLRenderer
) )
if YAMLRenderer: if yaml:
DEFAULT_RENDERERS += (YAMLRenderer,) DEFAULT_RENDERERS += (YAMLRenderer, )
else:
YAMLRenderer = None