mirror of
https://github.com/beetbox/beets.git
synced 2025-12-06 08:39:17 +01:00
Catch ValueError when setting gst required version
pytest.importskip is used to catch the case when beetsplug.bpd cannot be imported. On macOS, the gi module was able to be imported, but when trying to specify `gi.require_version`, a ValueError is raised about Gst being unavailable. pytest does not catch this ValueError during importskip as it is not an ImportError, and thus the test suite errors during the test collection phase. With this change, we catch the ValueError, and re-raise it as an ImportError and pytest gracefully skips those tests.
This commit is contained in:
parent
88ca0ce1fb
commit
aa2dc9005f
2 changed files with 12 additions and 1 deletions
|
|
@ -27,7 +27,16 @@ import gi
|
|||
|
||||
from beets import ui
|
||||
|
||||
try:
|
||||
gi.require_version("Gst", "1.0")
|
||||
except ValueError as e:
|
||||
# on some scenarios, gi may be importable, but we get a ValueError when
|
||||
# trying to specify the required version. This is problematic in the test
|
||||
# suite where test_bpd.py has a call to
|
||||
# pytest.importorskip("beetsplug.bpd"). Re-raising as an ImportError
|
||||
# makes it so the test collector functions as inteded.
|
||||
raise ImportError from e
|
||||
|
||||
from gi.repository import GLib, Gst # noqa: E402
|
||||
|
||||
Gst.init(None)
|
||||
|
|
|
|||
|
|
@ -66,6 +66,8 @@ Other changes:
|
|||
- Refactored the ``beets/ui/commands.py`` monolithic file (2000+ lines) into
|
||||
multiple modules within the ``beets/ui/commands`` directory for better
|
||||
maintainability.
|
||||
- :doc:`plugins/bpd`: Raise ImportError instead of ValueError when GStreamer is
|
||||
unavailable, enabling ``importorskip`` usage in pytest setup.
|
||||
|
||||
2.5.1 (October 14, 2025)
|
||||
------------------------
|
||||
|
|
|
|||
Loading…
Reference in a new issue