#!/usr/bin/env python3 """Checks for the 40250 server's GBK locale dictionary overlay.""" import tempfile import unittest from pathlib import Path import build_zh_server_locale as locale class ServerLocaleTest(unittest.TestCase): def test_build_preserves_keys_and_existing_translations(self): with tempfile.TemporaryDirectory() as temporary: output = Path(temporary) / "locale_string.txt" report = locale.build(locale.DEFAULT_ENGLISH, locale.DEFAULT_CHINESE, output) reference = locale.read_pairs(locale.DEFAULT_ENGLISH) existing = locale.read_pairs(locale.DEFAULT_CHINESE) generated = locale.read_pairs(output) self.assertEqual(report["new_chinese_keys"], 36) self.assertEqual(report["corrected_format_keys"], 2) self.assertEqual(set(generated), set(reference) | set(existing)) corrected = {key.encode("cp949") for key in locale.CORRECTED} for key, value in existing.items(): if key not in corrected: self.assertEqual(generated[key], value) for key, value in generated.items(): value.decode("gbk") self.assertEqual(locale.format_args(key), locale.format_args(value)) self.assertEqual( generated["OX 상품을 지급하였습니다. ID: %d 수량: %d".encode("cp949")].decode("gbk"), "已发放OX奖品,编号:%d,数量:%d。", ) if __name__ == "__main__": unittest.main()