From e614fbbb108247d7dc8ab31603b177a1078e5a27 Mon Sep 17 00:00:00 2001 From: Taito Horiuchi Date: Fri, 13 Jan 2017 14:11:52 +0200 Subject: [PATCH] use settings.getdict instead of settings.get test configure_logging --- scrapy/utils/log.py | 2 +- tests/test_utils_log_handler.py | 33 +++++++++++---------------------- 2 files changed, 12 insertions(+), 23 deletions(-) diff --git a/scrapy/utils/log.py b/scrapy/utils/log.py index 09a7502be..6f67f7989 100644 --- a/scrapy/utils/log.py +++ b/scrapy/utils/log.py @@ -92,7 +92,7 @@ def configure_logging(settings=None, install_root_handler=True): if isinstance(settings, dict) or settings is None: settings = Settings(settings) - LOGGING_FROM_SETTINGS = settings.get('LOGGING') + LOGGING_FROM_SETTINGS = settings.getdict('LOGGING') if settings.getbool('LOG_STDOUT'): sys.stdout = StreamLogger(logging.getLogger('stdout')) diff --git a/tests/test_utils_log_handler.py b/tests/test_utils_log_handler.py index fecb70630..5d6bb0697 100644 --- a/tests/test_utils_log_handler.py +++ b/tests/test_utils_log_handler.py @@ -1,29 +1,18 @@ -from logging import FileHandler -from logging.handlers import TimedRotatingFileHandler +# from logging import FileHandler +# from logging.handlers import TimedRotatingFileHandler from scrapy.utils import log +import logging import unittest class TestCase(unittest.TestCase): + def test_settings_None(self): + log.configure_logging() + self.assertEqual(logging.getLogger().getEffectiveLevel(), 0) - def test_import_handler(self): - """Test function: _import_handler""" - name = 'logging.handlers.TimedRotatingFileHandler' - self.assertEqual(log._import_hander(name), TimedRotatingFileHandler) - - def test_get_handler(self): - """Test function: _get_handler with LOG_FILE""" - # First create log file path - import os - import tempfile - file_path = tempfile.mkstemp()[1] - settings = {'LOG_FILE': file_path, 'LOG_ENCODIUNG': 'utf-8', 'LOG_LEVEL': 'DEBUG'} - handler = log._get_handler(settings) - self.assertIsInstance(handler, FileHandler) - # Adding LOG_HANDLER to settings should update the handler - settings['LOG_HANDLER'] = 'logging.handlers.TimedRotatingFileHandler' - handler = log._get_handler(settings) - self.assertIsInstance(handler, TimedRotatingFileHandler) - # Remove log file - os.remove(file_path) + def test_settings_LOGGING(self): + settings = {'LOGGING': {'loggers': {'logger3': {'level': 'CRITICAL'}}}} + log.configure_logging(settings=settings) + self.assertEqual(logging.getLogger().getEffectiveLevel(), 30) + self.assertEqual(logging.getLogger('logger3').getEffectiveLevel(), 50)