Files
kefu/deploy/customer-picker-20260918/add_warning_tests.py
T
2026-09-21 10:34:06 +08:00

54 lines
3.5 KiB
Python

from pathlib import Path
p=Path('C:/kefu/wechat_rpa/test_review_assistant_ui.py')
s=p.read_text(encoding='utf-8')
marker=' def test_persist_failure_does_not_claim_config_is_enabled(self):\n'
extra=''' def test_successful_reselection_clears_matching_warning_without_enabling(self):
self.host.runtime_settings['review_assistant_accounts'][ACCOUNT] = {
'enabled': False, 'recipient_conv_id': RECIPIENT_ID, 'recipient_name': RECIPIENT['name']}
self.host._review_assistant_state['recipient_check'] = {
'id': RECIPIENT_ID, 'ok': False, 'reason': '旧核验状态不可用'}
self.assertTrue(self.host._review_assistant_console_state()['recipientWarning'])
self.host._save_review_assistant(ACCOUNT, recipient=RECIPIENT)
self.assertEqual(self.host._review_assistant_console_state()['recipientWarning'], '')
self.assertFalse(self.host.runtime_settings['review_assistant_accounts'][ACCOUNT]['enabled'])
self.assertEqual(self.host.runtime_settings['review_assistant_accounts'][ACCOUNT]['recipient_conv_id'], RECIPIENT_ID)
'''
assert marker in s;s=s.replace(marker,extra+marker)
marker='class ReminderRefreshTest(TestCase):\n'
extra='''class ReminderRefreshTest(TestCase):
def test_refresh_warns_for_invalid_saved_m_without_rewriting_or_disabling_it(self):
import review_assistant
host = host_fixture()
old = {'enabled': True, 'recipient_conv_id': 'M:10001', 'recipient_name': '旧助理'}
host.runtime_settings['review_assistant_accounts'][ACCOUNT] = dict(old)
with mock.patch.object(qt.threading, 'Thread', ImmediateThread), \\
mock.patch.object(contacts, 'active_context', return_value=ACTIVE), \\
mock.patch.object(contacts, 'list_recipients', return_value={**ACTIVE, 'items': []}), \\
mock.patch.object(contacts, 'validate_recipient', return_value={
'ok': False, 'reason': '已保存联系人不在我的客户中', 'recipient': None}) as validate, \\
mock.patch.object(review_assistant, 'notification_summary', return_value={}):
host._refresh_review_assistant()
validate.assert_called_once_with(ACCOUNT, 'M:10001')
state = host._review_assistant_console_state()
self.assertIn('不在我的客户', state['recipientWarning'])
self.assertEqual(state['recipient']['id'], 'M:10001')
self.assertEqual(host.runtime_settings['review_assistant_accounts'][ACCOUNT], old)
host.save_runtime_settings.assert_not_called()
def test_warning_for_old_target_is_not_applied_to_new_target_or_other_account(self):
host = host_fixture()
host.runtime_settings['review_assistant_accounts'] = {
ACCOUNT: {'enabled': False, 'recipient_conv_id': RECIPIENT_ID},
OTHER: {'enabled': False, 'recipient_conv_id': f'S:{OTHER}_10001'}}
host._review_assistant_state['recipient_check'] = {'id': 'M:10001', 'ok': False, 'reason': '旧目标无效'}
self.assertEqual(host._review_assistant_console_state()['recipientWarning'], '')
host._review_assistant_state['account_id'] = OTHER
self.assertEqual(host._review_assistant_console_state()['recipientWarning'], '')
self.assertEqual(host._review_assistant_console_state()['recipient']['id'], f'S:{OTHER}_10001')
'''
assert marker in s;s=s.replace(marker,extra)
compile(s,str(p),'exec');p.write_text(s,encoding='utf-8',newline='')
print('Added 3 warning/state-isolation regressions.')