????JFIF??x?x????'
| Server IP : 79.136.114.73 / Your IP : 216.73.216.55 Web Server : Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.29 OpenSSL/1.0.1f System : Linux b8009 3.13.0-170-generic #220-Ubuntu SMP Thu May 9 12:40:49 UTC 2019 x86_64 User : www-data ( 33) PHP Version : 5.5.9-1ubuntu4.29 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/lib/python3/dist-packages/uaclient/ |
Upload File : |
import io
import logging
import mock
import pytest
@pytest.fixture
def caplog_text(request):
"""
A fixture that returns a function that returns caplog.text
caplog isn't available in pytest in all of our target releases; this either
uses caplog.text if available, or a shim which replicates what it does.
Specifically, bionic is the first Ubuntu release to contain a version of
pytest new enough for the caplog fixture to be present. In xenial, the
python3-pytest-catchlog package provides the same functionality (this is
the code that was later integrated in to pytest). For trusty, there is no
packaged alternative to this shim.
(It returns a function so that the requester can decide when to examine the
logs; if it returned caplog.text directly, that would always be empty.)
"""
log_level = getattr(request, "param", logging.INFO)
try:
try:
caplog = request.getfixturevalue("caplog")
except AttributeError:
# Older versions of pytest only have getfuncargvalue, which is now
# deprecated in favour of getfixturevalue
caplog = request.getfuncargvalue("caplog")
caplog.set_level(log_level)
def _func():
return caplog.text
except LookupError:
# If the caplog fixture isn't available, shim something in ourselves
root = logging.getLogger()
root.setLevel(log_level)
handler = logging.StreamHandler(io.StringIO())
handler.setFormatter(
logging.Formatter(
"%(filename)-25s %(lineno)4d %(levelname)-8s %(message)s"
)
)
root.addHandler(handler)
def _func():
return handler.stream.getvalue()
def clear_handlers():
logging.root.handlers = []
request.addfinalizer(clear_handlers)
return _func
@pytest.yield_fixture
def logging_sandbox():
# Monkeypatch a replacement root logger, so that our changes to logging
# configuration don't persist outside of the test
root_logger = logging.RootLogger(logging.WARNING)
with mock.patch.object(logging, "root", root_logger):
with mock.patch.object(logging.Logger, "root", root_logger):
with mock.patch.object(
logging.Logger, "manager", logging.Manager(root_logger)
):
yield