fix(cli): resolve Windows environment compatibility issues in python CLI tests (#5464)

Co-authored-by: Kartik <kartik.labhshetwar@mem0.ai>
This commit is contained in:
UmranPros
2026-06-12 19:40:26 +05:30
committed by GitHub
parent ced852033b
commit 1d56f85705
3 changed files with 10 additions and 5 deletions
+6 -3
View File
@@ -32,12 +32,13 @@ def _run(args: list[str], home_dir: str | None = None) -> subprocess.CompletedPr
if key.startswith("MEM0_"): if key.startswith("MEM0_"):
del env[key] del env[key]
env.pop("FORCE_COLOR", None) env.pop("FORCE_COLOR", None)
env["PYTHONIOENCODING"] = "utf-8"
if home_dir: if home_dir:
env["HOME"] = home_dir env["HOME"] = home_dir
result = subprocess.run( result = subprocess.run(
[sys.executable, "-m", "mem0_cli", *args], [sys.executable, "-m", "mem0_cli", *args],
capture_output=True, capture_output=True,
text=True, encoding="utf-8",
env=env, env=env,
timeout=15, timeout=15,
) )
@@ -99,12 +100,13 @@ class TestArgvPreprocessing:
result = subprocess.run( result = subprocess.run(
[sys.executable, "-m", "mem0_cli", "init", "--agent"], [sys.executable, "-m", "mem0_cli", "init", "--agent"],
capture_output=True, capture_output=True,
text=True, encoding="utf-8",
env={ env={
**{k: v for k, v in os.environ.items() if not k.startswith("MEM0_")}, **{k: v for k, v in os.environ.items() if not k.startswith("MEM0_")},
"HOME": clean_home, "HOME": clean_home,
"MEM0_BASE_URL": "http://127.0.0.1:1", # blackhole "MEM0_BASE_URL": "http://127.0.0.1:1", # blackhole
"FORCE_COLOR": "0", "FORCE_COLOR": "0",
"PYTHONIOENCODING": "utf-8",
}, },
timeout=15, timeout=15,
) )
@@ -133,12 +135,13 @@ class TestJsonEnvelopeParity:
result = subprocess.run( result = subprocess.run(
[sys.executable, "-m", "mem0_cli", "init", "--agent", "--json"], [sys.executable, "-m", "mem0_cli", "init", "--agent", "--json"],
capture_output=True, capture_output=True,
text=True, encoding="utf-8",
env={ env={
**{k: v for k, v in os.environ.items() if not k.startswith("MEM0_")}, **{k: v for k, v in os.environ.items() if not k.startswith("MEM0_")},
"HOME": clean_home, "HOME": clean_home,
"MEM0_BASE_URL": "http://127.0.0.1:1", "MEM0_BASE_URL": "http://127.0.0.1:1",
"FORCE_COLOR": "0", "FORCE_COLOR": "0",
"PYTHONIOENCODING": "utf-8",
}, },
timeout=15, timeout=15,
) )
+2 -1
View File
@@ -49,6 +49,7 @@ def _run(
if key.startswith("MEM0_"): if key.startswith("MEM0_"):
del env[key] del env[key]
env.pop("FORCE_COLOR", None) env.pop("FORCE_COLOR", None)
env["PYTHONIOENCODING"] = "utf-8"
if home_dir: if home_dir:
env["HOME"] = home_dir env["HOME"] = home_dir
if env_override: if env_override:
@@ -56,7 +57,7 @@ def _run(
result = subprocess.run( result = subprocess.run(
[sys.executable, "-m", "mem0_cli", *args], [sys.executable, "-m", "mem0_cli", *args],
capture_output=True, capture_output=True,
text=True, encoding="utf-8",
env=env, env=env,
) )
return subprocess.CompletedProcess( return subprocess.CompletedProcess(
+2 -1
View File
@@ -67,7 +67,8 @@ class TestConfig:
from mem0_cli.config import CONFIG_FILE from mem0_cli.config import CONFIG_FILE
mode = os.stat(CONFIG_FILE).st_mode & 0o777 mode = os.stat(CONFIG_FILE).st_mode & 0o777
assert mode == 0o600 if os.name != "nt":
assert mode == 0o600
def test_defaults_save_and_load(self, isolate_config): def test_defaults_save_and_load(self, isolate_config):
config = Mem0Config() config = Mem0Config()