Files
kefu/deploy/review-badges-20260917/run_frozen_regressions.py
T
2026-09-21 10:34:06 +08:00

37 lines
1.5 KiB
Python

"""Run synthetic regressions against actual frozen listener/UI code from the EXE."""
from pathlib import Path
import importlib.abc
import importlib.util
import runpy
import sys
from PyInstaller.archive.readers import CArchiveReader
folder = Path(__file__).resolve().parent
root = Path(r'C:\wechat_rpa')
exe = root / 'dist/ZhenAI-WeCom-Assistant-v1.4.19/ZhenAI-WeCom-Assistant-v1.4.19.exe'
pyz = CArchiveReader(str(exe)).open_embedded_archive('PYZ.pyz')
modules = {'protocol_engine', 'gui_runtime', 'wechat_gui_qt', 'wechat_bot', 'review_policy', 'review_state'}
class FrozenListenerCode(importlib.abc.MetaPathFinder, importlib.abc.Loader):
def find_spec(self, fullname, path=None, target=None):
if fullname in modules:
return importlib.util.spec_from_loader(fullname, self, origin=str(exe))
def create_module(self, spec):
return None
def exec_module(self, module):
module.__file__ = str(root / (module.__name__ + '.py'))
exec(pyz.extract(module.__name__), module.__dict__)
sys.meta_path.insert(0, FrozenListenerCode())
runner = folder.parent / 'loading-performance-20260917/run_isolated.py'
sys.argv = [str(runner), str(root), str(folder / 'frozen-continuity-tests.json'),
'test_listener_continuity', 'test_listener_ui_continuity',
'test_listener_continuity_integration', 'test_protocol_listener_continuity',
'test_review_badges', 'test_review_policy_integration', 'test_visual_review_visibility', 'test_protocol_review_visibility']
runpy.run_path(str(runner), run_name='__main__')