fix: add pywin32 dep, move Controller into class, wrap keyboard in to_thread
This commit is contained in:
@@ -64,10 +64,10 @@ class TestWaylandInserter:
|
||||
|
||||
class TestWin32Inserter:
|
||||
@pytest.mark.asyncio
|
||||
@patch("whisper_local.inserter._win32.keyboard_controller")
|
||||
@patch("whisper_local.inserter._win32.Win32Inserter._send_paste")
|
||||
@patch("whisper_local.inserter._win32.Win32Inserter._get_clipboard", return_value="alter clipboard")
|
||||
@patch("whisper_local.inserter._win32.Win32Inserter._set_clipboard")
|
||||
async def test_insert_text(self, mock_set, mock_get, mock_kb):
|
||||
async def test_insert_text(self, mock_set, mock_get, mock_paste):
|
||||
from whisper_local.inserter._win32 import Win32Inserter
|
||||
|
||||
inserter = Win32Inserter()
|
||||
@@ -75,7 +75,9 @@ class TestWin32Inserter:
|
||||
|
||||
# Clipboard wurde gesichert
|
||||
mock_get.assert_called_once()
|
||||
# Text wurde in Clipboard gesetzt, dann Ctrl+V, dann Restore
|
||||
# Ctrl+V wurde simuliert
|
||||
mock_paste.assert_called_once()
|
||||
# Text wurde in Clipboard gesetzt, dann Restore
|
||||
assert mock_set.call_count == 2
|
||||
mock_set.assert_any_call("Hallo Welt")
|
||||
mock_set.assert_any_call("alter clipboard")
|
||||
@@ -88,14 +90,12 @@ class TestWin32Inserter:
|
||||
await inserter.insert("")
|
||||
|
||||
@pytest.mark.asyncio
|
||||
@patch("whisper_local.inserter._win32.keyboard_controller")
|
||||
@patch("whisper_local.inserter._win32.Win32Inserter._send_paste", side_effect=OSError("keyboard error"))
|
||||
@patch("whisper_local.inserter._win32.Win32Inserter._get_clipboard", return_value="original")
|
||||
@patch("whisper_local.inserter._win32.Win32Inserter._set_clipboard")
|
||||
async def test_clipboard_restored_on_error(self, mock_set, mock_get, mock_kb):
|
||||
async def test_clipboard_restored_on_error(self, mock_set, mock_get, mock_paste):
|
||||
from whisper_local.inserter._win32 import Win32Inserter
|
||||
|
||||
mock_kb.press.side_effect = OSError("keyboard error")
|
||||
|
||||
inserter = Win32Inserter()
|
||||
with pytest.raises(OSError):
|
||||
await inserter.insert("Test")
|
||||
|
||||
Reference in New Issue
Block a user