PICARD-2939: Fix exception when genre filtering results in empty genre list

This commit is contained in:
Philipp Wolfer
2024-07-13 11:05:31 +02:00
parent e3e70753c4
commit b1a8b2c85c
2 changed files with 14 additions and 0 deletions

View File

@@ -115,6 +115,8 @@ class TagGenreFilter:
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

View File

@@ -178,3 +178,15 @@ class TagGenreFilterTest(PicardTestCase):
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()))