summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Bruhin <git@the-compiler.org>2015-09-09 07:15:12 +0200
committerFlorian Bruhin <git@the-compiler.org>2015-09-09 07:58:14 +0200
commitf7e40f73abc59798a02392f262dedf206ff81a7d (patch)
tree2cea354c1c4331e0387e73de0226db4c8f3165e8
parentf5d9e967efae5f0b52055df00be6360d337e1953 (diff)
downloadqutebrowser-f7e40f73abc59798a02392f262dedf206ff81a7d.tar.gz
qutebrowser-f7e40f73abc59798a02392f262dedf206ff81a7d.zip
logfail: Update tests to use testdir.
This makes more sophisticated tests easier.
-rw-r--r--tests/helpers/test_logfail.py129
1 files changed, 95 insertions, 34 deletions
diff --git a/tests/helpers/test_logfail.py b/tests/helpers/test_logfail.py
index 1cd7b930d..61da35e5f 100644
--- a/tests/helpers/test_logfail.py
+++ b/tests/helpers/test_logfail.py
@@ -20,50 +20,111 @@
"""Tests for the LogFailHandler test helper."""
+import os.path
import logging
import pytest
import pytest_capturelog # pylint: disable=import-error
-def test_log_debug():
- logging.debug('foo')
+pytest_plugins = 'pytester'
-def test_log_warning():
- with pytest.raises(pytest.fail.Exception):
- logging.warning('foo')
-def test_log_expected(caplog):
- with caplog.atLevel(logging.ERROR):
- logging.error('foo')
-
-
-def test_log_expected_logger(caplog):
- logger = 'logfail_test_logger'
- with caplog.atLevel(logging.ERROR, logger):
- logging.getLogger(logger).error('foo')
-
-
-def test_log_expected_wrong_level(caplog):
- with pytest.raises(pytest.fail.Exception):
- with caplog.atLevel(logging.ERROR):
- logging.critical('foo')
-
-
-def test_log_expected_logger_wrong_level(caplog):
- logger = 'logfail_test_logger'
- with pytest.raises(pytest.fail.Exception):
- with caplog.atLevel(logging.ERROR, logger):
- logging.getLogger(logger).critical('foo')
-
-
-def test_log_expected_wrong_logger(caplog):
- logger = 'logfail_test_logger'
- with pytest.raises(pytest.fail.Exception):
- with caplog.atLevel(logging.ERROR, logger):
- logging.error('foo')
+@pytest.fixture
+def log_testdir(testdir):
+ """Testdir which uses our logfail.py as a conftest."""
+ log_fn = os.path.join(os.path.dirname(__file__), 'logfail.py')
+ with open(log_fn) as f:
+ testdir.makeconftest(f.read())
+ return testdir
+
+
+def test_log_debug(testdir):
+ testdir.makepyfile("""
+ import logging
+
+ def test_foo():
+ logging.debug('foo')
+ """)
+ res = testdir.inline_run()
+ res.assertoutcome(passed=1)
+
+
+def test_log_warning(testdir):
+ testdir.makepyfile("""
+ import logging
+
+ def test_foo():
+ logging.warning('foo')
+ """)
+ res = testdir.inline_run()
+ res.assertoutcome(failed=1)
+
+
+def test_log_expected(log_testdir):
+ """For some reason this fails with inline_run."""
+ log_testdir.makepyfile("""
+ import logging
+
+ def test_foo(caplog):
+ with caplog.atLevel(logging.ERROR):
+ logging.error('foo')
+ """)
+ res = log_testdir.runpytest('-p capturelog')
+ res.stdout.fnmatch_lines(['*1 passed in*'])
+
+
+def test_log_expected_logger(testdir):
+ testdir.makepyfile("""
+ import logging
+
+ def test_foo(caplog):
+ logger = 'logfail_test_logger'
+ with caplog.atLevel(logging.ERROR, logger):
+ logging.getLogger(logger).error('foo')
+ """)
+ res = testdir.inline_run()
+ res.assertoutcome(passed=1)
+
+
+def test_log_expected_wrong_level(testdir):
+ testdir.makepyfile("""
+ import logging
+
+ def test_foo(caplog):
+ with caplog.atLevel(logging.ERROR):
+ logging.critical('foo')
+ """)
+ res = testdir.inline_run()
+ res.assertoutcome(failed=1)
+
+
+def test_log_expected_logger_wrong_level(testdir):
+ testdir.makepyfile("""
+ import logging
+
+ def test_foo(caplog):
+ logger = 'logfail_test_logger'
+ with caplog.atLevel(logging.ERROR, logger):
+ logging.getLogger(logger).critical('foo')
+ """)
+ res = testdir.inline_run()
+ res.assertoutcome(failed=1)
+
+
+def test_log_expected_wrong_logger(testdir):
+ testdir.makepyfile("""
+ import logging
+
+ def test_foo(caplog):
+ logger = 'logfail_test_logger'
+ with caplog.atLevel(logging.ERROR, logger):
+ logging.error('foo')
+ """)
+ res = testdir.inline_run()
+ res.assertoutcome(failed=1)
@pytest.fixture