personal memory agent
0

Configure Feed

Select the types of activity you want to include in your feed.

solstone / tests / test_convey_copy_console_parity.py
2.0 kB 58 lines
1# SPDX-License-Identifier: AGPL-3.0-only 2# Copyright (c) 2026 sol pbc 3 4from __future__ import annotations 5 6import json 7import re 8from pathlib import Path 9 10from solstone.convey import copy 11 12 13def test_console_copy_matches_browser_mirror() -> None: 14 text = Path("solstone/convey/static/convey_copy.js").read_text(encoding="utf-8") 15 16 for python_name in copy.__all__: 17 if not python_name.startswith("CONVEY_CONSOLE_"): 18 continue 19 js_name = python_name.removeprefix("CONVEY_") 20 assert _js_constant(text, js_name) == getattr(copy, python_name) 21 22 23def test_non_console_copy_matches_browser_mirror() -> None: 24 text = Path("solstone/convey/static/convey_copy.js").read_text(encoding="utf-8") 25 26 assert _js_constant(text, "UNKNOWN_ERROR") == copy.CONVEY_UNKNOWN_ERROR 27 assert _js_constant(text, "LOG_READ_FAILED") == copy.CONVEY_LOG_READ_FAILED 28 29 30def test_manifest_touched_action_and_report_copy_matches_browser_mirror() -> None: 31 text = Path("solstone/convey/static/convey_copy.js").read_text(encoding="utf-8") 32 33 names = ( 34 "CONVEY_ACTION_RECONNECT", 35 "CONVEY_ACTION_RESTART", 36 "CONVEY_REPORT_ANONYMOUS_LABEL", 37 "CONVEY_REPORT_DIAGNOSTIC_REASON_CODE_LABEL", 38 "CONVEY_REPORT_DIAGNOSTIC_TIME_LABEL", 39 "CONVEY_REPORT_ACTION_SEND", 40 "CONVEY_REPORT_ACTION_SENDING", 41 "CONVEY_REPORT_ACTION_CANCEL", 42 "CONVEY_REPORT_ACTION_CLOSE", 43 "CONVEY_REPORT_ACTION_OPEN_EMAIL", 44 "CONVEY_REPORT_ACTION_VIEW_TICKET", 45 "CONVEY_REPORT_SUCCESS_BODY", 46 "CONVEY_REPORT_FALLBACK_BODY", 47 "CONVEY_REPORT_BUTTON_LABEL", 48 ) 49 50 for python_name in names: 51 js_name = python_name.removeprefix("CONVEY_") 52 assert _js_constant(text, js_name) == getattr(copy, python_name) 53 54 55def _js_constant(text: str, name: str) -> str: 56 match = re.search(rf'{name}: "((?:[^"\\]|\\.)*)"', text) 57 assert match is not None, name 58 return json.loads(f'"{match.group(1)}"')