From d0eacfe0f90263035f98beb8fe6b5a8f182d5a1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Gra=C3=B1a?= Date: Tue, 26 Jan 2016 00:26:27 -0300 Subject: [PATCH] Add test case for marshal item exporter --- scrapy/exporters.py | 2 +- tests/test_exporters.py | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/scrapy/exporters.py b/scrapy/exporters.py index 69c180ea4..145468dbe 100644 --- a/scrapy/exporters.py +++ b/scrapy/exporters.py @@ -158,7 +158,7 @@ class XmlItemExporter(BaseItemExporter): if not isinstance(serialized_value, six.text_type): serialized_value = serialized_value.decode(self.encoding) return self.xg.characters(serialized_value) - else: + else: # pragma: no cover def _xg_characters(self, serialized_value): return self.xg.characters(serialized_value) diff --git a/tests/test_exporters.py b/tests/test_exporters.py index 8930545a6..1633e1039 100644 --- a/tests/test_exporters.py +++ b/tests/test_exporters.py @@ -1,6 +1,8 @@ from __future__ import absolute_import import re import json +import marshal +import tempfile import unittest from io import BytesIO from six.moves import cPickle as pickle @@ -12,7 +14,8 @@ from scrapy.item import Item, Field from scrapy.utils.python import to_unicode from scrapy.exporters import ( BaseItemExporter, PprintItemExporter, PickleItemExporter, CsvItemExporter, - XmlItemExporter, JsonLinesItemExporter, JsonItemExporter, PythonItemExporter + XmlItemExporter, JsonLinesItemExporter, JsonItemExporter, + PythonItemExporter, MarshalItemExporter ) @@ -163,6 +166,17 @@ class PickleItemExporterTest(BaseItemExporterTest): self.assertEqual(pickle.load(f), i2) +class MarshalItemExporterTest(BaseItemExporterTest): + + def _get_exporter(self, **kwargs): + self.output = tempfile.TemporaryFile() + return MarshalItemExporter(self.output, **kwargs) + + def _check_output(self): + self.output.seek(0) + self._assert_expected_item(marshal.load(self.output)) + + class CsvItemExporterTest(BaseItemExporterTest): def _get_exporter(self, **kwargs): return CsvItemExporter(self.output, **kwargs)