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
|
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
|
from gi.repository import GLib, Gst # noqa: E402
|
||||||
|
|
||||||
Gst.init(None)
|
Gst.init(None)
|
||||||
|
|
|
||||||
|
|
@ -66,6 +66,8 @@ Other changes:
|
||||||
- Refactored the ``beets/ui/commands.py`` monolithic file (2000+ lines) into
|
- Refactored the ``beets/ui/commands.py`` monolithic file (2000+ lines) into
|
||||||
multiple modules within the ``beets/ui/commands`` directory for better
|
multiple modules within the ``beets/ui/commands`` directory for better
|
||||||
maintainability.
|
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)
|
2.5.1 (October 14, 2025)
|
||||||
------------------------
|
------------------------
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue