test: 100% coverage on core modules with headless CI support
Some checks failed
SonarQube Code Quality Scan / SonarQube Scan (push) Failing after 1m20s
Some checks failed
SonarQube Code Quality Scan / SonarQube Scan (push) Failing after 1m20s
- Fix dead exception handler in discord_rpc.py (unreachable DiscordNotFound) - Replace QMediaPlayer=None stub with proper _StubQMediaPlayer in player.py - Make AudioVisualizer color stops Qt-free (raw tuples instead of QColor) - Add conftest QApplication creation check for headless CI detection - Add test_gui_widgets.py _qt_available() guard for headless environments - Add test_main.py (30 tests) for main.py entry point and env vars - Add test_import_fallbacks.py (14 tests) for Qt import fallback paths - Extend test_gui_helpers.py with _css, _get_thumbnail_nam, _cached_thumb_path tests - Extend test_discord_rpc.py with direct _connect() test for DiscordNotFound - Extend test_player_helpers.py with SearchWorker test-mode tests - Ensure import fallback tests clean up sys.modules to avoid cross-test pollution 100% coverage achieved on: config.py, discord_rpc.py, main.py, music_db.py
This commit is contained in:
@@ -257,6 +257,19 @@ class TestDiscordRPC:
|
||||
assert result is False
|
||||
assert drpc._connected is False
|
||||
|
||||
def test_connect_discord_not_found_direct(self):
|
||||
"""_connect handles DiscordNotFound when called directly (not through thread)."""
|
||||
with mock.patch("discord_rpc.Presence") as mock_presence_cls:
|
||||
from discord_rpc import DiscordRPC, DiscordNotFound
|
||||
mock_instance = mock.MagicMock()
|
||||
mock_instance.connect.side_effect = DiscordNotFound()
|
||||
mock_presence_cls.return_value = mock_instance
|
||||
|
||||
drpc = DiscordRPC(client_id="test")
|
||||
result = drpc._connect()
|
||||
assert result is False
|
||||
assert drpc._connected is False
|
||||
|
||||
def test_run_reconnects_on_failure(self):
|
||||
"""_run loop retries connection when _connect fails (covers lines 174-175)."""
|
||||
with mock.patch("discord_rpc.Presence") as mock_presence_cls:
|
||||
|
||||
Reference in New Issue
Block a user