fix client command-line argument parsing

This commit is contained in:
cppla
2026-07-10 18:09:36 +08:00
parent 27e85c9bfd
commit 1512d2999b
5 changed files with 74 additions and 25 deletions
+40
View File
@@ -0,0 +1,40 @@
import importlib.util
import runpy
import sys
import types
import unittest
from pathlib import Path
CLIENT_DIR = Path(__file__).resolve().parent
class ClientArgumentTests(unittest.TestCase):
def test_password_with_user_text_does_not_replace_username(self):
if importlib.util.find_spec("psutil") is None:
sys.modules["psutil"] = types.ModuleType("psutil")
arguments = [
"SERVER=127.0.0.1",
"PORT=35601",
"USER=s01",
"PASSWORD=USER_DEFAULT_PASSWORD",
"INTERVAL=2",
"NOTUSER=ignored",
]
expected = {
"SERVER": "127.0.0.1",
"PORT": "35601",
"USER": "s01",
"PASSWORD": "USER_DEFAULT_PASSWORD",
"INTERVAL": "2",
}
for filename in ("client-linux.py", "client-psutil.py"):
with self.subTest(client=filename):
namespace = runpy.run_path(str(CLIENT_DIR / filename))
self.assertEqual(namespace["parse_cli_args"](arguments), expected)
if __name__ == "__main__":
unittest.main()