Files
kefu/wechat_rpa/tmp/check_database_setup_bridge.py
T
2026-09-21 10:34:06 +08:00

37 lines
1.8 KiB
Python

import os
os.environ['QT_QPA_PLATFORM'] = 'offscreen'
from unittest import mock
from PySide6.QtWidgets import QApplication, QWidget
import wechat_gui_qt as gui
app = QApplication([])
class Host(QWidget):
def __init__(self):
super().__init__()
self._wechat_db_state = {}
self._refresh_wechat_database = mock.Mock()
host = Host()
bridge = gui.ConsoleBridge(host)
bridge.acquireWeChatDatabaseKeys()
host._refresh_wechat_database.assert_called_once_with(refresh_cache=True, acquire_keys=True)
host._refresh_wechat_database.reset_mock()
host._wechat_db_state = {'loading': True}
bridge.acquireWeChatDatabaseKeys()
host._refresh_wechat_database.assert_not_called()
host._wechat_db_state = {}
with mock.patch.object(gui.QFileDialog, 'getExistingDirectory', return_value=''):
bridge.chooseWeChatDatabaseDirectory()
host._refresh_wechat_database.assert_not_called()
with mock.patch.object(gui.QFileDialog, 'getOpenFileName', return_value=('', '')):
bridge.importWeChatDatabaseKeys()
host._refresh_wechat_database.assert_not_called()
with mock.patch.object(gui.QFileDialog, 'getExistingDirectory', return_value='C:/test/WXWork'), mock.patch('wxwork_local_setup.select_source_directory') as selected:
bridge.chooseWeChatDatabaseDirectory()
selected.assert_called_once_with('C:/test/WXWork')
host._refresh_wechat_database.assert_called_once_with(refresh_cache=True)
host._refresh_wechat_database.reset_mock()
with mock.patch.object(gui.QFileDialog, 'getOpenFileName', return_value=('C:/test/keys.json', '')), mock.patch('wxwork_local_setup.import_keys_file', side_effect=ValueError('wrong key')), mock.patch.object(gui.QMessageBox, 'warning') as warned:
bridge.importWeChatDatabaseKeys()
assert warned.call_count == 1
host._refresh_wechat_database.assert_not_called()
print('Database setup bridge checks passed')