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