From 1d5a7df125fedb6268cb9042f60ba49364a02e30 Mon Sep 17 00:00:00 2001 From: Pablo Hoffman Date: Wed, 8 Sep 2010 15:34:13 -0300 Subject: [PATCH] Fixed encoding error with some item dropped messages. Closes #232 --- scrapy/logformatter.py | 2 +- scrapy/tests/test_logformatter.py | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/scrapy/logformatter.py b/scrapy/logformatter.py index f6612602f..7e7ba01b2 100644 --- a/scrapy/logformatter.py +++ b/scrapy/logformatter.py @@ -15,7 +15,7 @@ class LogFormatter(object): return "Scraped %s in <%s>" % (item, request.url) def dropped(self, item, exception, spider): - return "Dropped %s - %s" % (item, str(exception)) + return "Dropped %s - %s" % (item, unicode(exception)) def passed(self, item, spider): return "Passed %s" % item diff --git a/scrapy/tests/test_logformatter.py b/scrapy/tests/test_logformatter.py index e4560215e..eb386bb57 100644 --- a/scrapy/tests/test_logformatter.py +++ b/scrapy/tests/test_logformatter.py @@ -22,6 +22,11 @@ class LoggingContribTest(unittest.TestCase): self.assertEqual(self.formatter.crawled(req, res, self.spider), "Crawled (200) (referer: http://example.com) ['cached']") + def test_dropped(self): + item = {} + exception = Exception(u"\u2018") + self.assertEqual(self.formatter.dropped(item, exception, self.spider), + u"Dropped {} - \u2018") if __name__ == "__main__": unittest.main()