From ccc120d4166a1f0a35fec77c4f252096b7499f84 Mon Sep 17 00:00:00 2001 From: roadscape <roadscape@users.noreply.github.com> Date: Fri, 20 Jul 2018 14:28:37 -0500 Subject: [PATCH] log_level test --- hive/conf.py | 8 ++------ hive/server/serve.py | 1 + hive/utils/normalize.py | 10 ++++++++++ tests/utils/test_utils_normalize.py | 13 +++++++++++++ 4 files changed, 26 insertions(+), 6 deletions(-) diff --git a/hive/conf.py b/hive/conf.py index 37cbf99b4..2119b4b52 100644 --- a/hive/conf.py +++ b/hive/conf.py @@ -5,7 +5,7 @@ import configargparse from hive.steem.client import SteemClient from hive.db.adapter import Db -from hive.utils.normalize import strtobool +from hive.utils.normalize import strtobool, int_log_level class Conf(): """ Manages sync/server configuration via args, ENVs, and hive.conf. """ @@ -94,8 +94,4 @@ class Conf(): def log_level(self): """Get `logger`s internal int level from config string.""" - str_log_level = self.get('log_level') - log_level = getattr(logging, str_log_level.upper(), None) - if not isinstance(log_level, int): - raise ValueError('Invalid log level: %s' % str_log_level) - return log_level + return int_log_level(self.get('log_level')) diff --git a/hive/server/serve.py b/hive/server/serve.py index 0c8646afa..547edf4cf 100644 --- a/hive/server/serve.py +++ b/hive/server/serve.py @@ -65,6 +65,7 @@ def run_server(conf): log_level = conf.log_level() config.debug = (log_level == logging.DEBUG) + #config.debug = logging.getLogger().isEnabledFor(logging.DEBUG) logging.getLogger('jsonrpcserver.dispatcher.response').setLevel(log_level) log = logging.getLogger(__name__) diff --git a/hive/utils/normalize.py b/hive/utils/normalize.py index b1bd7b3bd..247c7a178 100644 --- a/hive/utils/normalize.py +++ b/hive/utils/normalize.py @@ -1,5 +1,6 @@ """Methods to parse steemd values and clean strings.""" +import logging import math import decimal from datetime import datetime @@ -155,3 +156,12 @@ def strtobool(val): return False else: raise ValueError("not booleany: %r" % (val,)) + +def int_log_level(str_log_level): + """Get `logger`s internal int level from config string.""" + if not str_log_level: + raise ValueError('Empty log level passed') + log_level = getattr(logging, str_log_level.upper(), None) + if not isinstance(log_level, int): + raise ValueError('Invalid log level: %s' % str_log_level) + return log_level diff --git a/tests/utils/test_utils_normalize.py b/tests/utils/test_utils_normalize.py index 0d139a81d..9609e5e52 100644 --- a/tests/utils/test_utils_normalize.py +++ b/tests/utils/test_utils_normalize.py @@ -21,6 +21,7 @@ from hive.utils.normalize import ( safe_img_url, secs_to_str, strtobool, + int_log_level, ) def test_secs_to_str(): @@ -105,3 +106,15 @@ def test_strtobool(): with pytest.raises(ValueError): strtobool('foo') + +def test_int_log_level(): + assert int_log_level('debug') == 10 + assert int_log_level('DEBUG') == 10 + assert int_log_level('info') == 20 + assert int_log_level('warning') == 30 + with pytest.raises(ValueError): + int_log_level('foo') + with pytest.raises(ValueError): + int_log_level(None) + with pytest.raises(ValueError): + int_log_level('') -- GitLab