picard/0001-Fix-exception-when-genre-filtering-results-in.patch
Takashi Iwai e3ccc682a4 - Update 2.12.3:
* PICARD-2958 - Hovering over unmatched files shows a tooltip with
    the PO translation file header for the active locale
  * PICARD-2960 - Replacement for directory separators can itself be
    set to a directory separator

- Update to 2.12.2:
  * PICARD-2953 - Windows: Incorrect sort order in list views and
    search result

- Update to 2.12.1:
  * PICARD-2914 - macOS: Crash when opening options with Spanish UI
  * PICARD-2939 - Crash when loading release with genre filters resulting
    in empty genre list
  * PICARD-2940 - Possible bug with locking in Metadata.__iter__
  * PICARD-2946 - Fix display length value in AppStream metadata

- Drop 0001-Fix-exception-when-genre-filtering-results-in.patch

OBS-URL: https://build.opensuse.org/package/show/multimedia:apps/picard?expand=0&rev=145
2024-09-10 08:07:13 +00:00

45 lines
1.7 KiB
Diff

From b1a8b2c85c0615c2018de3c054d59f2a0b5315bd Mon Sep 17 00:00:00 2001
From: Philipp Wolfer <ph.wolfer@gmail.com>
Date: Sat, 13 Jul 2024 11:05:31 +0200
Subject: [PATCH] PICARD-2939: Fix exception when genre filtering results in
empty genre list
---
picard/track.py | 2 ++
test/test_taggenrefilter.py | 12 ++++++++++++
2 files changed, 14 insertions(+)
diff --git a/picard/track.py b/picard/track.py
index 3da608de7f..025ebb8b55 100644
--- a/picard/track.py
+++ b/picard/track.py
@@ -115,6 +115,8 @@ def filter(self, counter: Counter, minusage=0) -> Counter:
for name, count in counter.items():
if not self.skip(name):
result[name] = count
+ if not result:
+ return result
topcount = result.most_common(1)[0][1]
for name, count in counter.items():
percent = 100 * count // topcount
diff --git a/test/test_taggenrefilter.py b/test/test_taggenrefilter.py
index 01a54c383d..46cb5a5a52 100644
--- a/test/test_taggenrefilter.py
+++ b/test/test_taggenrefilter.py
@@ -178,3 +178,15 @@ def test_filter_method_minusage(self):
genres = Counter(ax=4, bx=5, ay=20, by=10, bz=4)
result = tag_filter.filter(genres, minusage=50)
self.assertEqual([('bx', 5), ('by', 10)], list(result.items()))
+
+ def test_filter_method_empty_input(self):
+ tag_filter = TagGenreFilter("")
+ genres = Counter()
+ result = tag_filter.filter(genres)
+ self.assertEqual([], list(result.items()))
+
+ def test_filter_method_empty_result(self):
+ tag_filter = TagGenreFilter("-*")
+ genres = Counter(ax=1, bx=2, ay=3, by=4)
+ result = tag_filter.filter(genres)
+ self.assertEqual([], list(result.items()))