test.py 1.2 KB

123456789101112131415161718192021222324252627282930313233343536
  1. #!/usr/bin/env python3
  2. """Verify -m TARGET is wired and triggers standalone mod-only dispatch."""
  3. import sys, subprocess
  4. err = []
  5. r = subprocess.run([sys.executable, "ufonet", "--help"], capture_output=True, text=True, timeout=10)
  6. if r.returncode != 0:
  7. err.append(f"--help exited {r.returncode}")
  8. help_text = r.stdout
  9. if "-m TARGET" not in help_text:
  10. err.append("-m TARGET flag missing in --help")
  11. if "mod-only" not in help_text.lower():
  12. err.append("'mod-only' label missing in --help for -m")
  13. import sys as _sys
  14. _sys.argv = ["ufonet", "-m", "http://example.com", "--memcached", "5"]
  15. from core.main import UFONet
  16. app = UFONet()
  17. opts = app.create_options()
  18. if not getattr(opts, 'mod_target', None):
  19. err.append("options.mod_target not populated when -m used")
  20. if getattr(opts, 'mod_target', None) != "http://example.com":
  21. err.append(f"options.mod_target wrong: {opts.mod_target!r}")
  22. if getattr(opts, 'memcached', None) != "5":
  23. err.append(f"options.memcached wrong: {opts.memcached!r}")
  24. if opts.target is not None:
  25. err.append(f"options.target should be None, got {opts.target!r}")
  26. print(f"-m flag wired correctly: mod_target={opts.mod_target!r}, memcached={opts.memcached!r}")
  27. for e in err:
  28. print("FAIL:", e)
  29. sys.exit(0 if not err else 1)