fix(test): add missing mocks for IBus engine test (#226)

* fix(test): add missing mocks for IBus engine test

The test_init_auto_activate test was missing mocks for:
- install_ibus_component
- start_engine_process

Without these mocks, the test would fail in CI where IBus is not
installed, as _setup_engine() would fail early and never reach
switch_engine().

* style: fix black formatting in test_ibus_engine.py
This commit is contained in:
Jatin K Malik
2026-02-17 22:26:38 -08:00
committed by GitHub
parent a1725f7cfc
commit 0da4e74005
+13 -2
View File
@@ -45,7 +45,10 @@ class TestIBusEngineHelpers(unittest.TestCase):
def test_is_ibus_available_returns_constant(self):
"""Test is_ibus_available returns the module constant."""
from vocalinux.text_injection.ibus_engine import IBUS_AVAILABLE, is_ibus_available
from vocalinux.text_injection.ibus_engine import (
IBUS_AVAILABLE,
is_ibus_available,
)
self.assertEqual(is_ibus_available(), IBUS_AVAILABLE)
@@ -280,21 +283,26 @@ class TestIBusTextInjector(unittest.TestCase):
@patch("vocalinux.text_injection.ibus_engine.IBUS_AVAILABLE", True)
@patch("vocalinux.text_injection.ibus_engine.ensure_ibus_dir")
@patch("vocalinux.text_injection.ibus_engine.install_ibus_component")
@patch("vocalinux.text_injection.ibus_engine.is_engine_registered")
@patch("vocalinux.text_injection.ibus_engine.is_engine_active")
@patch("vocalinux.text_injection.ibus_engine.start_engine_process")
@patch("vocalinux.text_injection.ibus_engine.get_current_engine")
@patch("vocalinux.text_injection.ibus_engine.switch_engine")
def test_init_auto_activate(
self,
mock_switch,
mock_get_current,
mock_start_engine,
mock_is_active,
mock_is_registered,
mock_install,
mock_ensure_dir,
):
"""Test initialization with auto_activate=True."""
mock_is_registered.return_value = True
mock_is_active.return_value = False
mock_start_engine.return_value = True
mock_get_current.return_value = "xkb:us::eng"
mock_switch.return_value = True
@@ -302,8 +310,11 @@ class TestIBusTextInjector(unittest.TestCase):
injector = IBusTextInjector(auto_activate=True)
# ensure_ibus_dir is called twice: once in __init__ and once in start_engine_process
# ensure_ibus_dir is called at least once
self.assertGreaterEqual(mock_ensure_dir.call_count, 1)
# Engine should be started
mock_start_engine.assert_called_once()
# Should switch to vocalinux engine
mock_switch.assert_called_once_with("vocalinux")
self.assertEqual(injector._previous_engine, "xkb:us::eng")