add test for PythonItemExporter binary mode

This commit is contained in:
Elias Dorneles 2016-01-21 21:51:59 -02:00
parent 2514973242
commit e938752973
2 changed files with 12 additions and 1 deletions

View File

@ -272,7 +272,11 @@ class PythonItemExporter(BaseItemExporter):
def _serialize_dict(self, value):
for key, val in six.iteritems(value):
key = to_bytes(key) if self.binary else key
yield key, self._serialize_value(val)
def export_item(self, item):
return dict(self._get_serialized_fields(item))
result = dict(self._get_serialized_fields(item))
if self.binary:
result = dict(self._serialize_dict(result))
return result

View File

@ -2,6 +2,7 @@ from __future__ import absolute_import
import re
import json
import unittest
import warnings
from io import BytesIO
from six.moves import cPickle as pickle
@ -115,6 +116,12 @@ class PythonItemExporterTest(BaseItemExporterTest):
self.assertEqual(type(exported['age'][0]), dict)
self.assertEqual(type(exported['age'][0]['age'][0]), dict)
def test_export_binary(self):
exporter = PythonItemExporter(binary=True)
value = TestItem(name=u'John\xa3', age=u'22')
expected = {b'name': b'John\xc2\xa3', b'age': b'22'}
self.assertEqual(expected, exporter.export_item(value))
class PprintItemExporterTest(BaseItemExporterTest):