summaryrefslogtreecommitdiff
path: root/tidal_dl_ng/gui
diff options
context:
space:
mode:
authorWarry <FunWarry@users.noreply.github.com>2025-12-29 20:54:26 +0100
committerWarry <FunWarry@users.noreply.github.com>2025-12-29 20:54:26 +0100
commit7b60f92a48b4ff54604e8179503488800866ca6f (patch)
treeb9d66f238777f4308ca29332c3675d9311c961d6 /tidal_dl_ng/gui
parentf413240b51f574c01144e6ae672b24c412a949e1 (diff)
downloadtidal-dl-ng-7b60f92a48b4ff54604e8179503488800866ca6f.tar.gz
feat: Refactor playlist management, error handling, and testing infrastructure
- Improved playlist item handling with pagination, error logging, and dedicated request hooks. - Consolidated reusable helpers for track ID normalization, playlist validation, and removal logic. - Enhanced error handling by introducing `PlaylistNotFound` and `UserNotAuthenticated` exceptions. - Refined Pytest `qapp` fixture for headless CI compatibility and session-scoped reuse. - Replaced redundant fixtures in multiple test files for consistency. - Improved playlist management GUI with detailed debug logging for notifications and operations. - Added `deptry` configuration to handle transitive dependencies and ignored exclusions. - Updated Pytest and Tox configurations for consistent environment setup during CI/CD runs.
Diffstat (limited to 'tidal_dl_ng/gui')
-rw-r--r--tidal_dl_ng/gui/dialog_playlist_manager.py3
-rw-r--r--tidal_dl_ng/gui/playlist_membership.py4
2 files changed, 4 insertions, 3 deletions
diff --git a/tidal_dl_ng/gui/dialog_playlist_manager.py b/tidal_dl_ng/gui/dialog_playlist_manager.py
index 0066e72..f665543 100644
--- a/tidal_dl_ng/gui/dialog_playlist_manager.py
+++ b/tidal_dl_ng/gui/dialog_playlist_manager.py
@@ -316,8 +316,7 @@ class PlaylistManagerDialog(QtWidgets.QDialog):
TODO: Integrate with app's notification system (Toast/Snackbar)
"""
- # Silent - errors are shown via UI notifications
- pass
+ logger_gui.debug(f"PlaylistManagerDialog notification: {message}")
def closeEvent(self, event: QtGui.QCloseEvent) -> None:
"""Handle dialog close event.
diff --git a/tidal_dl_ng/gui/playlist_membership.py b/tidal_dl_ng/gui/playlist_membership.py
index 927c96b..31d9d2d 100644
--- a/tidal_dl_ng/gui/playlist_membership.py
+++ b/tidal_dl_ng/gui/playlist_membership.py
@@ -508,14 +508,16 @@ class PlaylistContextLoader(QtCore.QRunnable):
Set of track UUIDs in this playlist
"""
try:
- # If a low-level request hook is present, use it to fetch all items
req = getattr(self.session, "request", None)
if callable(req):
return self._fetch_via_request_hook(playlist_uuid, playlist_name)
return self._fetch_via_tidalapi(playlist_uuid, playlist_name)
+ except RequestException:
+ raise
except Exception as e:
+ logger_gui.debug(f"Unexpected error fetching items for {playlist_uuid}: {e}")
raise RequestException(f"Failed to fetch items for playlist {playlist_uuid}: {e}") from e # noqa: TRY003
def request_abort(self) -> None: