tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

test_tracer.py (1900B)


      1 from typing import List
      2 
      3 import pytest
      4 
      5 from pluggy._tracing import TagTracer
      6 
      7 
      8 @pytest.fixture
      9 def rootlogger() -> TagTracer:
     10    return TagTracer()
     11 
     12 
     13 def test_simple(rootlogger: TagTracer) -> None:
     14    log = rootlogger.get("pytest")
     15    log("hello")
     16    out: List[str] = []
     17    rootlogger.setwriter(out.append)
     18    log("world")
     19    assert len(out) == 1
     20    assert out[0] == "world [pytest]\n"
     21    sublog = log.get("collection")
     22    sublog("hello")
     23    assert out[1] == "hello [pytest:collection]\n"
     24 
     25 
     26 def test_indent(rootlogger: TagTracer) -> None:
     27    log = rootlogger.get("1")
     28    out = []
     29    log.root.setwriter(lambda arg: out.append(arg))
     30    log("hello")
     31    log.root.indent += 1
     32    log("line1")
     33    log("line2")
     34    log.root.indent += 1
     35    log("line3")
     36    log("line4")
     37    log.root.indent -= 1
     38    log("line5")
     39    log.root.indent -= 1
     40    log("last")
     41    assert len(out) == 7
     42    names = [x[: x.rfind(" [")] for x in out]
     43    assert names == [
     44        "hello",
     45        "  line1",
     46        "  line2",
     47        "    line3",
     48        "    line4",
     49        "  line5",
     50        "last",
     51    ]
     52 
     53 
     54 def test_readable_output_dictargs(rootlogger: TagTracer) -> None:
     55    out = rootlogger._format_message(["test"], [1])
     56    assert out == "1 [test]\n"
     57 
     58    out2 = rootlogger._format_message(["test"], ["test", {"a": 1}])
     59    assert out2 == "test [test]\n    a: 1\n"
     60 
     61 
     62 def test_setprocessor(rootlogger: TagTracer) -> None:
     63    log = rootlogger.get("1")
     64    log2 = log.get("2")
     65    assert log2.tags == tuple("12")
     66    out = []
     67    rootlogger.setprocessor(tuple("12"), lambda *args: out.append(args))
     68    log("not seen")
     69    log2("seen")
     70    assert len(out) == 1
     71    tags, args = out[0]
     72    assert "1" in tags
     73    assert "2" in tags
     74    assert args == ("seen",)
     75    l2 = []
     76    rootlogger.setprocessor("1:2", lambda *args: l2.append(args))
     77    log2("seen")
     78    tags, args = l2[0]
     79    assert args == ("seen",)