54 lines
3.5 KiB
Python
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.')
|