use settings.getdict instead of settings.get

test configure_logging
This commit is contained in:
Taito Horiuchi 2017-01-13 14:11:52 +02:00
parent c4939f464b
commit e614fbbb10
2 changed files with 12 additions and 23 deletions

View File

@ -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'))

View File

@ -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)