add logger's unittest 09/29209/9
authorSerenaFeng <feng.xiaowei@zte.com.cn>
Wed, 22 Feb 2017 09:31:10 +0000 (17:31 +0800)
committerSerena Feng <feng.xiaowei@zte.com.cn>
Wed, 22 Feb 2017 15:39:32 +0000 (15:39 +0000)
Change-Id: I9a7d3c6afeff5432017f5bfd4a961a719c93c086
Signed-off-by: SerenaFeng <feng.xiaowei@zte.com.cn>
tests/unit/util/__init__.py [new file with mode: 0644]
tests/unit/util/logger_test.py [new file with mode: 0644]

diff --git a/tests/unit/util/__init__.py b/tests/unit/util/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/unit/util/logger_test.py b/tests/unit/util/logger_test.py
new file mode 100644 (file)
index 0000000..339b2bf
--- /dev/null
@@ -0,0 +1,48 @@
+import pytest
+
+from qtip.util import logger
+
+MODULE = 'test_logger'
+ERROR_MSG = 'error level test'
+INFO_MSG = 'info level test'
+DEBUG_MSG = 'debug level test'
+
+
+@pytest.fixture()
+def env_home(monkeypatch, tmpdir):
+    monkeypatch.setenv('HOME', str(tmpdir))
+    return tmpdir
+
+
+@pytest.fixture()
+def logger_file(env_home):
+    return env_home.mkdir('qtip').mkdir('logs').join('{}.log'.format(MODULE))
+
+
+def console_expect_debug(content):
+    assert DEBUG_MSG in content
+
+
+def console_expect_nodebug(content):
+    assert DEBUG_MSG not in content
+
+
+@pytest.mark.parametrize('debug, console_expected', [
+    ('true', console_expect_debug),
+    ('false', console_expect_nodebug)])
+def test_logger(monkeypatch, capsys, logger_file, debug, console_expected):
+    monkeypatch.setenv('IF_DEBUG', debug)
+
+    log = logger.QtipLogger(MODULE).get
+    log.error(ERROR_MSG)
+    log.info(INFO_MSG)
+    log.debug(DEBUG_MSG)
+
+    file_print = logger_file.read()
+    assert ERROR_MSG in file_print
+    assert INFO_MSG in file_print
+    assert DEBUG_MSG in file_print
+
+    _, console_print = capsys.readouterr()
+
+    console_expected(console_print)