test.py 1.1 KB

1234567891011121314151617181920212223242526272829303132
  1. #!/usr/bin/env python3
  2. """All UFONet modules must import without error."""
  3. import sys, importlib, traceback
  4. MODULES = [
  5. "core.main", "core.options", "core.webgui", "core.zombie", "core.herd",
  6. "core.doll", "core.ajaxmap", "core.randomip", "core.update", "core._ensure",
  7. "core.tools.abductor", "core.tools.inspector", "core.tools.ufoscan",
  8. "core.tools.crypter", "core.tools.blackhole", "core.tools.grider",
  9. "core.mods.loic", "core.mods.loris", "core.mods.ufosyn", "core.mods.spray",
  10. "core.mods.smurf", "core.mods.xmas", "core.mods.nuke", "core.mods.tachyon",
  11. "core.mods.monlist", "core.mods.sniper", "core.mods.ufoack", "core.mods.uforst",
  12. "core.mods.droper", "core.mods.overlap", "core.mods.pinger", "core.mods.ufoudp",
  13. "core.mods.fraggle",
  14. ]
  15. ok = []
  16. fail = []
  17. for name in MODULES:
  18. try:
  19. importlib.import_module(name)
  20. ok.append(name)
  21. except Exception as e:
  22. fail.append((name, type(e).__name__, str(e)))
  23. traceback.print_exc()
  24. print(f"imported_ok={len(ok)} / {len(MODULES)}")
  25. for n, ty, msg in fail:
  26. print(f" FAIL {n}: {ty}: {msg}")
  27. sys.exit(0 if not fail else 1)