diff --git a/qutebrowser/test/utils/debug/test_log_time.py b/qutebrowser/test/utils/debug/test_log_time.py new file mode 100644 index 000000000..b5d1b97fe --- /dev/null +++ b/qutebrowser/test/utils/debug/test_log_time.py @@ -0,0 +1,45 @@ +# Copyright 2014-2015 Florian Bruhin (The Compiler) +# vim: ft=python fileencoding=utf-8 sts=4 sw=4 et: + +# +# This file is part of qutebrowser. +# +# qutebrowser is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# qutebrowser is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with qutebrowser. If not, see . + +"""Tests for qutebrowser.utils.debug.log_time.""" + +import logging +import re +import time + +from qutebrowser.utils import debug + + +def test_log_time(caplog): + """Test if log_time logs properly.""" + logger = logging.getLogger('qt-tests') + + with caplog.atLevel(logging.DEBUG, logger='qt-tests'): + with debug.log_time(logger, action='foobar'): + time.sleep(0.1) + + records = caplog.records() + assert len(records) == 1 + + pattern = re.compile(r'^Foobar took ([\d.]*) seconds\.$') + match = pattern.match(records[0].msg) + assert match + + duration = float(match.group(1)) + assert abs(duration - 0.1) < 0.01 diff --git a/qutebrowser/test/utils/test_debug.py b/qutebrowser/test/utils/test_debug.py index 737763044..7bd2d94c4 100644 --- a/qutebrowser/test/utils/test_debug.py +++ b/qutebrowser/test/utils/test_debug.py @@ -59,22 +59,5 @@ class TestDebug(unittest.TestCase): r"fake('foo\nbar')") -class TestLogTime(unittest.TestCase): - - """Test log_time.""" - - def test_log_time(self): - """Test if log_time logs properly.""" - logger = logging.getLogger('qt-tests') - with self.assertLogs(logger, logging.DEBUG) as logged: - with debug.log_time(logger, action='foobar'): - time.sleep(0.1) - self.assertEqual(len(logged.records), 1) - pattern = re.compile(r'^Foobar took ([\d.]*) seconds\.$') - match = pattern.match(logged.records[0].msg) - self.assertTrue(match) - duration = float(match.group(1)) - self.assertAlmostEqual(duration, 0.1, delta=0.01) - if __name__ == '__main__': unittest.main() diff --git a/tox.ini b/tox.ini index 143d4f804..502915d7f 100644 --- a/tox.ini +++ b/tox.ini @@ -19,6 +19,7 @@ setenv = QT_QPA_PLATFORM_PLUGIN_PATH={envsitepackagesdir}/PyQt5/plugins/platform deps = py==1.4.26 pytest==2.7.0 + pytest-capturelog==0.7 # We don't use {[testenv:mkvenv]commands} here because that seems to be broken # on Ubuntu Trusty. commands =