import json import os import subprocess import sys import tempfile import unittest from pathlib import Path SCRIPT = Path(__file__).resolve().parents[1] / "resolve_customization.py" class ResolveCustomizationStdoutTests(unittest.TestCase): def test_writes_emoji_json_when_stdout_encoding_is_cp1252(self): with tempfile.TemporaryDirectory() as temp_dir: skill_dir = Path(temp_dir) / "emoji-agent" skill_dir.mkdir() (skill_dir / "customize.toml").write_text( '[agent]\nname = "Emoji Agent"\nicon = "🧭"\n', encoding="utf-8", ) env = os.environ.copy() env["PYTHONIOENCODING"] = "cp1252" result = subprocess.run( [ sys.executable, str(SCRIPT), "--skill", str(skill_dir), "--key", "agent", ], stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=env, check=False, ) stderr = result.stderr.decode("utf-8", errors="replace") self.assertEqual(result.returncode, 0, msg=stderr) output = result.stdout.decode("utf-8") self.assertIn("🧭", output) resolved = json.loads(output) self.assertEqual(resolved["agent"]["icon"], "🧭") if __name__ == "__main__": unittest.main()