def test_simple(rootlogger: TagTracer) -> None: log = rootlogger.get("pytest") log("hello") out: List[str] = [] rootlogger.setwriter(out.append) log("world") assert len(out) == 1 assert out[0] == "world [pytest]\n" sublog = log.get("collection") sublog("hello") assert out[1] == "hello [pytest:collection]\n"
def mocked_config(): """Mock Pytest config for testing.""" mocked_config = mock.create_autospec(Config) mocked_config.getoption_side_effects = { '--collect-only': False, '--setup-plan': False, 'rp_log_level': 'debug' } def getoption_side_effect(name, default=None): return mocked_config.getoption_side_effects.get( name, default if default else mock.Mock() ) mocked_config._reporter_config = mock.Mock() mocked_config.getoption.side_effect = getoption_side_effect mocked_config._rp_enabled = True mocked_config.rootdir = py.path.local('/path/to') mocked_config.trace = TagTracer().get('root') mocked_config.pluginmanager = mock.Mock() mocked_config.option = mock.create_autospec(Config) mocked_config.option.rp_project = mock.sentinel.rp_project mocked_config.option.rp_endpoint = mock.sentinel.rp_endpoint mocked_config.option.rp_uuid = mock.sentinel.rp_uuid mocked_config.option.rp_log_batch_size = -1 mocked_config.option.retries = -1 mocked_config.option.rp_hierarchy_dirs_level = '0' mocked_config.option.rp_rerun = False return mocked_config
def test_indent(rootlogger: TagTracer) -> None: log = rootlogger.get("1") out = [] log.root.setwriter(lambda arg: out.append(arg)) log("hello") log.root.indent += 1 log("line1") log("line2") log.root.indent += 1 log("line3") log("line4") log.root.indent -= 1 log("line5") log.root.indent -= 1 log("last") assert len(out) == 7 names = [x[: x.rfind(" [")] for x in out] assert names == [ "hello", " line1", " line2", " line3", " line4", " line5", "last", ]
def mocked_config(): """Mock Pytest config for testing.""" mocked_config = mock.create_autospec(Config) mocked_config._reportportal_configured = True mocked_config.rootdir = py.path.local('/path/to') mocked_config.trace = TagTracer().get('root') mocked_config.pluginmanager = mock.Mock() return mocked_config
def test_setprocessor(rootlogger: TagTracer) -> None: log = rootlogger.get("1") log2 = log.get("2") assert log2.tags == tuple("12") out = [] rootlogger.setprocessor(tuple("12"), lambda *args: out.append(args)) log("not seen") log2("seen") assert len(out) == 1 tags, args = out[0] assert "1" in tags assert "2" in tags assert args == ("seen",) l2 = [] rootlogger.setprocessor("1:2", lambda *args: l2.append(args)) log2("seen") tags, args = l2[0] assert args == ("seen",)
def rootlogger() -> TagTracer: return TagTracer()
def test_readable_output_dictargs(rootlogger: TagTracer) -> None: out = rootlogger._format_message(["test"], [1]) assert out == "1 [test]\n" out2 = rootlogger._format_message(["test"], ["test", {"a": 1}]) assert out2 == "test [test]\n a: 1\n"
def rootlogger(): return TagTracer()