test.py 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #!/usr/bin/env python3
  2. """Inspector tool: ensure it crawls a local target without exceptions."""
  3. import sys, os, ssl, time
  4. sys.path.insert(0, os.path.abspath("test"))
  5. from _lib.local_target import http_target
  6. from core.tools.inspector import Inspector
  7. err = []
  8. class _UFOMin:
  9. def __init__(self):
  10. self.options = type("O", (), dict(proxy=None))()
  11. self.user_agent = "Mozilla/5.0 UFONet-test"
  12. self.referer = "https://example.com"
  13. self.agents = [self.user_agent]
  14. self.ctx = ssl.create_default_context()
  15. self.ctx.check_hostname = False
  16. self.ctx.verify_mode = ssl.CERT_NONE
  17. ufo = _UFOMin()
  18. ins = Inspector(ufo)
  19. with http_target() as (port, counter):
  20. target = f"http://127.0.0.1:{port}/"
  21. try:
  22. ins.inspecting(target)
  23. except SystemExit:
  24. pass
  25. except Exception as e:
  26. err.append(f"inspector raised: {type(e).__name__}: {e}")
  27. _deadline = time.time() + 3
  28. while counter["get"] < 1 and time.time() < _deadline:
  29. time.sleep(0.1)
  30. if counter["get"] < 1:
  31. err.append(f"inspector didn't perform any GET (got {counter['get']})")
  32. print(f"inspector_get_hits={counter['get']}")
  33. for e in err:
  34. print("FAIL:", e)
  35. sys.exit(0 if not err else 1)