Skip to content

Commit 45add8e

Browse files
authored
Merge pull request #124 from odrling/vlc-is-available-error
vlc: catch errors when instanciating vlc in is_available
2 parents f6e52f0 + 611323a commit 45add8e

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

src/dakara_player/media_player/vlc.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,11 @@ def is_available():
9090
Returns:
9191
bool: `True` if VLC is useable.
9292
"""
93-
return vlc is not None and vlc.Instance() is not None
93+
try:
94+
return vlc is not None and vlc.Instance() is not None
95+
except NameError:
96+
logger.exception("Failed to start VLC.")
97+
return False
9498

9599
def init_player(self, config, tempdir):
96100
"""Initialize the objects of VLC.

tests/unit/test_media_player_vlc.py

+6
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,12 @@ def test_set_vlc_callback(self):
210210
vlc.EventType.MediaPlayerEndReached, callback
211211
)
212212

213+
@skipIf(vlc is None, "VLC not installed")
214+
def test_vlc_unavailable(self):
215+
"""Test that is_available returns False when vlc.Instance raises a NameError."""
216+
with patch.object(vlc, "Instance", side_effect=NameError()):
217+
self.assertFalse(MediaPlayerVlc.is_available())
218+
213219
@patch("dakara_player.media_player.vlc.libvlc_get_version")
214220
def test_get_version_long_4_digits(self, mocked_libvlc_get_version):
215221
"""Test to get the VLC version when it is long and contains 4 digits."""

0 commit comments

Comments
 (0)