Skip to content

Commit d0eacfe

Browse files
committed
Add test case for marshal item exporter
1 parent 2dfdde3 commit d0eacfe

File tree

2 files changed

+16
-2
lines changed

2 files changed

+16
-2
lines changed

scrapy/exporters.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ def _xg_characters(self, serialized_value):
158158
if not isinstance(serialized_value, six.text_type):
159159
serialized_value = serialized_value.decode(self.encoding)
160160
return self.xg.characters(serialized_value)
161-
else:
161+
else: # pragma: no cover
162162
def _xg_characters(self, serialized_value):
163163
return self.xg.characters(serialized_value)
164164

tests/test_exporters.py

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
from __future__ import absolute_import
22
import re
33
import json
4+
import marshal
5+
import tempfile
46
import unittest
57
from io import BytesIO
68
from six.moves import cPickle as pickle
@@ -12,7 +14,8 @@
1214
from scrapy.utils.python import to_unicode
1315
from scrapy.exporters import (
1416
BaseItemExporter, PprintItemExporter, PickleItemExporter, CsvItemExporter,
15-
XmlItemExporter, JsonLinesItemExporter, JsonItemExporter, PythonItemExporter
17+
XmlItemExporter, JsonLinesItemExporter, JsonItemExporter,
18+
PythonItemExporter, MarshalItemExporter
1619
)
1720

1821

@@ -163,6 +166,17 @@ def test_export_multiple_items(self):
163166
self.assertEqual(pickle.load(f), i2)
164167

165168

169+
class MarshalItemExporterTest(BaseItemExporterTest):
170+
171+
def _get_exporter(self, **kwargs):
172+
self.output = tempfile.TemporaryFile()
173+
return MarshalItemExporter(self.output, **kwargs)
174+
175+
def _check_output(self):
176+
self.output.seek(0)
177+
self._assert_expected_item(marshal.load(self.output))
178+
179+
166180
class CsvItemExporterTest(BaseItemExporterTest):
167181
def _get_exporter(self, **kwargs):
168182
return CsvItemExporter(self.output, **kwargs)

0 commit comments

Comments
 (0)