В модуле.py:
Код: Выделить всё
import logging
LOGGER = logging.getLogger(__name__)
def run_function():
if something_bad_happens:
LOGGER.warning('Something bad happened!')
Код: Выделить всё
import logging
from module import run_function
LOGGER = logging.getLogger(__name__)
def test_func():
LOGGER.info('Testing now.')
run_function()
~ somehow get the stdout/log of run_function() ~
assert 'Something bad happened!' in output
Однако, когда я пробую эти методы, я вижу только «Тестирование сейчас», а не «Произошло что-то плохое!». Кажется, что вывод журнала, который происходит при вызове run_function(), недоступен из test_func()?
То же самое произойдет, если я попробую более прямой метод, например sys.stdout.getvalue(). Это сбивает с толку, поскольку run_function() записывает данные в терминал, поэтому я думаю, что это будет доступно из стандартного вывода...?
По сути, кто-нибудь знает, как я могу получить доступ к этому «Произошло что-то плохое!» изнутри test_func()?