0
0
PyTesttesting~20 mins

Asserting log messages in PyTest - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Log Mastery Badge
Get all challenges correct to earn this badge!
Test your skills under time pressure!
Predict Output
intermediate
2:00remaining
What is the output of this pytest log assertion?
Consider this pytest test function that asserts a log message is emitted at WARNING level.
PyTest
import logging
import pytest

def func():
    logging.warning("Warning issued")

def test_log_warning(caplog):
    with caplog.at_level(logging.WARNING):
        func()
    assert "Warning issued" in caplog.text
ATest fails with AssertionError
BTest passes (assertion succeeds)
CTest raises a RuntimeError
DTest raises a TypeError
Attempts:
2 left
💡 Hint
Check if the log message is captured by caplog at the correct level.
assertion
intermediate
2:00remaining
Which assertion correctly checks for an ERROR log message using caplog?
You want to assert that the log contains the exact message "Error occurred" at ERROR level.
Aassert "Error occurred" in caplog.text and caplog.level == logging.ERROR
Bassert caplog.text == "Error occurred" and caplog.records[0].level == logging.ERROR
Cassert any(record.levelname == "ERROR" and record.getMessage() == "Error occurred" for record in caplog.records)
Dassert caplog.records[0].levelname == "ERROR" and caplog.records[0].msg == "Error occurred"
Attempts:
2 left
💡 Hint
caplog.records is a list of log records; check each record's levelname and message.
🔧 Debug
advanced
2:00remaining
Why does this pytest log assertion fail unexpectedly?
Given this test code: import logging def func(): logging.info("Info message") def test_log_info(caplog): with caplog.at_level(logging.WARNING): func() assert "Info message" in caplog.text Why does the assertion fail?
ABecause caplog.text is empty due to a missing caplog fixture
BBecause the log message text is incorrect
CBecause logging.info does not produce any log output
DBecause caplog is set to WARNING level, INFO messages are not captured
Attempts:
2 left
💡 Hint
Check the log level filter set by caplog.at_level.
framework
advanced
2:00remaining
Which pytest fixture is used to capture log messages during tests?
You want to capture and assert log messages emitted by your code in pytest tests. Which fixture should you use?
Acaplog
Blogfixture
Clogcap
Dlogcapture
Attempts:
2 left
💡 Hint
The fixture name starts with 'cap'.
🧠 Conceptual
expert
2:00remaining
What is the main benefit of asserting log messages in automated tests?
Why do testers assert log messages in their automated test suites?
ATo verify that the system reports important events and errors as expected
BTo increase test execution speed by skipping functional checks
CTo replace UI tests with log checks entirely
DTo ensure logs are stored permanently on disk
Attempts:
2 left
💡 Hint
Think about why logs are useful in software.