Opened 12 years ago

Closed 12 years ago

Last modified 12 years ago

#18457 closed Bug (fixed)

Failed test: pyyaml serializer,

Reported by: Jonathan Paugh Owned by: Claude Paroz
Component: Core (Serialization) Version: dev
Severity: Normal Keywords: unicode
Cc: Jonathan Paugh Triage Stage: Accepted
Has patch: yes Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description

The patch introduced by commit 4a10308 causes the pyyaml deserializer to fail the test suite. The error is caused by trying to wrap a unicode string in an io.BytesIO. The relevant bits are in tests/regressiontests/serializers_regress/tests.py @line 408 and in django/core/serializers/pyyaml.py @line 51.

Attachments (1)

18457.diff (881 bytes ) - added by Jonathan Paugh 12 years ago.

Download all attachments as: .zip

Change History (5)

by Jonathan Paugh, 12 years ago

Attachment: 18457.diff added

comment:1 by Jonathan Paugh, 12 years ago

Cc: Jonathan Paugh added
Has patch: set
Keywords: unicode added

I just added a patch that fixes the bug. The problem was caused because pyyaml.Deserializer assumed it was dealing with a bytestring, but tested for basestring instead--causing it to try wrapping unicode objects in an io.BytesIO instance. (The bug wasn't uncovered until commit 4a10308 caused all strings in the test case to default to unicode) This patch tests for str and and unicode objects, and handles each appropriately.

comment:2 by Claude Paroz, 12 years ago

Owner: changed from nobody to Claude Paroz
Status: newassigned
Triage Stage: UnreviewedAccepted

comment:3 by Claude Paroz <claude@…>, 12 years ago

Resolution: fixed
Status: assignedclosed

In [1a10a06b9f510f796beb2ffef39c7885cba2ad67]:

Fixed #18457 -- Fixed encoding error in yaml deserializer

Thanks jpaugh64 for the report.

comment:4 by Claude Paroz, 12 years ago

Thanks for the report. I eventually choose to handle it the same way as in json.py.

Note: See TracTickets for help on using tickets.
Back to Top