mirror of
https://github.com/beetbox/beets.git
synced 2025-12-06 08:39:17 +01:00
Catch ValueError when beetsplug.bpd cannot be imported (#6170)
Catch ValueError when setting gst required version `pytest.importorskip` 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. Fixes #3324
This commit is contained in:
commit
f79c125d15
2 changed files with 12 additions and 1 deletions
|
|
@ -27,7 +27,16 @@ import gi
|
|||
|
||||
from beets import ui
|
||||
|
||||
gi.require_version("Gst", "1.0")
|
||||
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