def test_logger(webapp):
    logobj = DummyLogger()
    logger = Logger(logger=logobj)
    logger.register(webapp)

    f = urlopen(webapp.server.http.base)
    s = f.read()
    assert s == b"Hello World!"

    s = logobj.message

    try:
        address = gethostbyname(gethostname())
    except gaierror:
        address = "127.0.0.1"

    d = {}
    d["h"] = address
    d["l"] = "-"
    d["u"] = "-"
    d["r"] = "GET / HTTP/1.1"
    d["s"] = "200"
    d["b"] = "12"
    d["f"] = ""
    d["a"] = "Python-urllib/%s" % sys.version[:3]

    keys = list(d.keys())

    for k in keys:
        if d[k] or d[k].startswith("127."):
            # loopback network: 127.0.0.0/8
            assert re.search("127(\.[0-9]{1,3}){3}", s)
        else:
            assert d[k] in s

    logger.unregister()
dataset/ETHPy150Open circuits/circuits/tests/web/test_logger.py/test_logger/operator `and` -> `or`