[test] LogFormatter.error

This commit is contained in:
Eugenio Lacuesta 2019-08-29 13:51:42 -03:00
parent f6872189b9
commit 27436cbbc9
No known key found for this signature in database
GPG Key ID: DA3EF2D0913E9810
1 changed files with 22 additions and 8 deletions

View File

@ -23,7 +23,7 @@ class CustomItem(Item):
return "name: %s" % self['name']
class LoggingContribTest(unittest.TestCase):
class LoggingFormatterTest(unittest.TestCase):
def setUp(self):
self.formatter = LogFormatter()
@ -61,6 +61,16 @@ class LoggingContribTest(unittest.TestCase):
lines = logline.splitlines()
assert all(isinstance(x, six.text_type) for x in lines)
self.assertEqual(lines, [u"Dropped: \u2018", '{}'])
def test_error(self):
# In practice, the complete traceback is shown by passing the
# 'exc_info' argument to the logging function
item = {'key': 'value'}
exception = Exception()
response = Response("http://www.example.com")
logkws = self.formatter.error(item, exception, response, self.spider)
logline = logkws['msg'] % logkws['args']
self.assertEqual(logline, u"'Error processing {'key': 'value'}'")
def test_scraped(self):
item = CustomItem()
@ -75,26 +85,30 @@ class LoggingContribTest(unittest.TestCase):
class LogFormatterSubclass(LogFormatter):
def crawled(self, request, response, spider):
kwargs = super(LogFormatterSubclass, self).crawled(
request, response, spider)
kwargs = super(LogFormatterSubclass, self).crawled(request, response, spider)
CRAWLEDMSG = (
u"Crawled (%(status)s) %(request)s (referer: "
u"%(referer)s)%(flags)s"
u"Crawled (%(status)s) %(request)s (referer: %(referer)s) %(flags)s"
)
log_args = kwargs['args']
log_args['flags'] = str(request.flags)
return {
'level': kwargs['level'],
'msg': CRAWLEDMSG,
'args': kwargs['args']
'args': log_args,
}
class LogformatterSubclassTest(LoggingContribTest):
class LogformatterSubclassTest(unittest.TestCase):
def setUp(self):
self.formatter = LogFormatterSubclass()
self.spider = Spider('default')
def test_flags_in_request(self):
pass
req = Request("http://www.example.com", flags=['test','flag'])
res = Response("http://www.example.com")
logkws = self.formatter.crawled(req, res, self.spider)
logline = logkws['msg'] % logkws['args']
self.assertEqual(logline, "Crawled (200) <GET http://www.example.com> (referer: None) ['test', 'flag']")
class SkipMessagesLogFormatter(LogFormatter):