37 lines
1.8 KiB
Python
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')
|