Opened 4 years ago

Closed 4 years ago

Last modified 4 years ago

#18457 closed Bug (fixed)

Failed test: pyyaml serializer,

Reported by: Jonathan Paugh Owned by: Claude Paroz
Component: Core (Serialization) Version: master
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


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/ @line 408 and in django/core/serializers/ @line 51.

Attachments (1)

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

Download all attachments as: .zip

Change History (5)

Changed 4 years ago by Jonathan Paugh

Attachment: 18457.diff added

comment:1 Changed 4 years ago by Jonathan Paugh

Cc: Jonathan Paugh added
Has patch: set
Keywords: unicode added
Needs documentation: unset
Needs tests: unset
Patch needs improvement: unset

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 Changed 4 years ago by Claude Paroz

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

comment:3 Changed 4 years ago by Claude Paroz <claude@…>

Resolution: fixed
Status: assignedclosed

In [1a10a06b9f510f796beb2ffef39c7885cba2ad67]:

Fixed #18457 -- Fixed encoding error in yaml deserializer

Thanks jpaugh64 for the report.

comment:4 Changed 4 years ago by Claude Paroz

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

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