From 0416650642a0075a19b1e6a91df3e66c927456c1 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Wed, 27 Jul 2022 10:33:44 +0200 Subject: [PATCH] ParseItemsToLoad: add __bool__() and use it to bring tagger to front --- picard/tagger.py | 7 ++++++- test/test_tagger_message_parsing.py | 28 ++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/picard/tagger.py b/picard/tagger.py index 99360ba194..fdc7c2d103 100644 --- a/picard/tagger.py +++ b/picard/tagger.py @@ -195,6 +195,9 @@ def __init__(self, items): # .path returns / before actual link self.urls.add(parsed.path[1:]) + def __bool__(self): + return bool(self.files or self.mbids or self.urls) + class Tagger(QtWidgets.QApplication): @@ -351,11 +354,13 @@ def load_to_picard(self, items): if parsed_items.files: self.add_paths(parsed_items.files) - self.bring_tagger_front() + if parsed_items.urls or parsed_items.mbids: file_lookup = self.get_file_lookup() for item in parsed_items.mbids | parsed_items.urls: thread.to_main(file_lookup.mbid_lookup, item, None, None, False) + + if parsed_items: self.bring_tagger_front() def enable_menu_icons(self, enabled): diff --git a/test/test_tagger_message_parsing.py b/test/test_tagger_message_parsing.py index d30e25def1..f01cc40e4e 100644 --- a/test/test_tagger_message_parsing.py +++ b/test/test_tagger_message_parsing.py @@ -38,3 +38,31 @@ def test(self): self.assertSetEqual(result.mbids, {"recording/7cd3782d-86dc-4dd1-8d9b-e37f9cbe6b94"}, "MBIDs test") self.assertSetEqual(result.urls, {"recording/7cd3782d-86dc-4dd1-8d9b-e37f9cbe6b94", "recording/7cd3782d-86dc-4dd1-8d9b-e37f9cbe6b94"}, "URLs test") + + def test_bool_files_true(self): + test_cases = { + "test_case.mp3", + } + self.assertTrue(ParseItemsToLoad(test_cases)) + + def test_bool_mbids_true(self): + test_cases = { + "mbid://recording/7cd3782d-86dc-4dd1-8d9b-e37f9cbe6b94", + } + self.assertTrue(ParseItemsToLoad(test_cases)) + + def test_bool_urls_true(self): + test_cases = { + "https://musicbrainz.org/recording/7cd3782d-86dc-4dd1-8d9b-e37f9cbe6b94", + } + self.assertTrue(ParseItemsToLoad(test_cases)) + + def test_bool_invalid_false(self): + test_cases = { + "mbd://recording/7cd3782d-86dc-4dd1-8d9b-e37f9cbe6b94", + } + self.assertFalse(ParseItemsToLoad(test_cases)) + + def test_bool_empty_false(self): + test_cases = {} + self.assertFalse(ParseItemsToLoad(test_cases))