| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- #!/usr/bin/env python3
- """Inspector tool: ensure it crawls a local target without exceptions."""
- import sys, os, ssl, time
- sys.path.insert(0, os.path.abspath("test"))
- from _lib.local_target import http_target
- from core.tools.inspector import Inspector
- err = []
- class _UFOMin:
- def __init__(self):
- self.options = type("O", (), dict(proxy=None))()
- self.user_agent = "Mozilla/5.0 UFONet-test"
- self.referer = "https://example.com"
- self.agents = [self.user_agent]
- self.ctx = ssl.create_default_context()
- self.ctx.check_hostname = False
- self.ctx.verify_mode = ssl.CERT_NONE
- ufo = _UFOMin()
- ins = Inspector(ufo)
- with http_target() as (port, counter):
- target = f"http://127.0.0.1:{port}/"
- try:
- ins.inspecting(target)
- except SystemExit:
- pass
- except Exception as e:
- err.append(f"inspector raised: {type(e).__name__}: {e}")
- _deadline = time.time() + 3
- while counter["get"] < 1 and time.time() < _deadline:
- time.sleep(0.1)
- if counter["get"] < 1:
- err.append(f"inspector didn't perform any GET (got {counter['get']})")
- print(f"inspector_get_hits={counter['get']}")
- for e in err:
- print("FAIL:", e)
- sys.exit(0 if not err else 1)
|