Fix: Test failures after language support merge (#73)

* fix: Update tests to include language parameter

- Add language to parse_arguments tests
- Update mock expectations for SpeechRecognitionManager to include language
- Fixes test failures after language support merge

* fix: Update tests for language support and fix None argument handling

- Fix test_parse_arguments_defaults to expect None for model/engine/language
- Add language_combo mock to settings_dialog tests
- Add language attribute to dialog mock setup
- Include language in get_selected_settings mock return values
- Update mock_config_manager to include language in return value
This commit is contained in:
Jatin K Malik
2026-01-26 00:11:38 -08:00
committed by GitHub
parent ef0b7e274c
commit 0c2d269a20
2 changed files with 17 additions and 3 deletions
+9 -3
View File
@@ -15,12 +15,13 @@ class TestMainModule(unittest.TestCase):
def test_parse_arguments_defaults(self):
"""Test argument parsing with defaults."""
# Test with no arguments
# Test with no arguments (model/engine/language will be None without defaults)
with patch("sys.argv", ["vocalinux"]):
args = parse_arguments()
self.assertFalse(args.debug)
self.assertEqual(args.model, "small")
self.assertEqual(args.engine, "vosk")
self.assertIsNone(args.model) # No default set, loaded from config instead
self.assertIsNone(args.engine)
self.assertIsNone(args.language)
self.assertFalse(args.wayland)
def test_parse_arguments_custom(self):
@@ -35,6 +36,8 @@ class TestMainModule(unittest.TestCase):
"large",
"--engine",
"whisper",
"--language",
"fr",
"--wayland",
],
):
@@ -42,6 +45,7 @@ class TestMainModule(unittest.TestCase):
self.assertTrue(args.debug)
self.assertEqual(args.model, "large")
self.assertEqual(args.engine, "whisper")
self.assertEqual(args.language, "fr")
self.assertTrue(args.wayland)
@patch("vocalinux.main.check_dependencies")
@@ -88,6 +92,7 @@ class TestMainModule(unittest.TestCase):
mock_args.debug = False
mock_args.model = "medium"
mock_args.engine = "vosk"
mock_args.language = "en-us"
mock_args.wayland = True
mock_parse.return_value = mock_args
@@ -97,6 +102,7 @@ class TestMainModule(unittest.TestCase):
# Verify components were initialized correctly
mock_speech.assert_called_once_with(
engine="vosk",
language="en-us",
model_size="medium",
vad_sensitivity=3,
silence_timeout=2.0,
+8
View File
@@ -34,6 +34,7 @@ mock_config_manager.get = Mock(
return_value={
"speech_recognition": {
"engine": "vosk",
"language": "en-us",
"model_size": "small",
"vad_sensitivity": 3,
"silence_timeout": 2.0,
@@ -68,6 +69,9 @@ class TestSettingsDialog(unittest.TestCase):
self.silence_spin = Mock()
self.silence_spin.get_value.return_value = 2.0
self.language_combo = Mock()
self.language_combo.get_active_id.return_value = "en-us"
self.vosk_settings_box = Mock()
self.vosk_settings_box.is_visible.return_value = True
@@ -92,6 +96,7 @@ class TestSettingsDialog(unittest.TestCase):
self.dialog.model_combo = self.model_combo
self.dialog.vad_spin = self.vad_spin
self.dialog.silence_spin = self.silence_spin
self.dialog.language_combo = self.language_combo
self.dialog.vosk_settings_box = self.vosk_settings_box
self.dialog.test_button = self.test_button
self.dialog.test_textview = self.test_textview
@@ -102,6 +107,7 @@ class TestSettingsDialog(unittest.TestCase):
self.dialog.get_selected_settings = Mock(
return_value={
"engine": "vosk",
"language": "en-us",
"model_size": "small",
"vad_sensitivity": 3,
"silence_timeout": 2.0,
@@ -118,6 +124,7 @@ class TestSettingsDialog(unittest.TestCase):
# Add missing attributes for apply_settings
self.dialog.current_model_size = "small"
self.dialog.current_engine = "vosk"
self.dialog.language = "en-us"
self.dialog._populate_model_options = Mock()
def test_apply_settings_success(self):
@@ -125,6 +132,7 @@ class TestSettingsDialog(unittest.TestCase):
# Change the returned settings for this test
self.dialog.get_selected_settings.return_value = {
"engine": "vosk",
"language": "en-us",
"model_size": "large",
"vad_sensitivity": 3,
"silence_timeout": 2.0,