51 lines
1.5 KiB
Python
51 lines
1.5 KiB
Python
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()
|