PICARD-2218: Allow regular expressions in $performer(pattern)

This commit is contained in:
Philipp Wolfer
2021-05-31 23:05:17 +02:00
parent f79e72b14b
commit 4aae0bcc2c
2 changed files with 21 additions and 2 deletions

View File

@@ -3,7 +3,7 @@
# Picard, the next-generation MusicBrainz tagger
#
# Copyright (C) 2007 Lukáš Lalinský
# Copyright (C) 2010, 2014, 2018-2020 Philipp Wolfer
# Copyright (C) 2010, 2014, 2018-2021 Philipp Wolfer
# Copyright (C) 2012 Chad Wilson
# Copyright (C) 2013 Michael Wiencek
# Copyright (C) 2013, 2017-2020 Laurent Monin
@@ -942,6 +942,19 @@ class ScriptParserTest(PicardTestCase):
self.assertEqual({'Foo1', 'Foo2', 'Foo3', 'Drummer'}, set(result.split(', ')))
self.assertScriptResultEquals("$performer(perf)", "", context)
def test_cmd_performer_regex(self):
context = Metadata()
context['performer:guitar'] = 'Foo1'
context['performer:guitars'] = 'Foo2'
context['performer:rhythm-guitar'] = 'Foo3'
context['performer:drums (drum kit)'] = 'Drummer'
result = self.parser.eval(r"$performer(^guitar)", context=context)
self.assertEqual({'Foo1', 'Foo2'}, set(result.split(', ')))
result = self.parser.eval(r"$performer(^guitar\$)", context=context)
self.assertEqual({'Foo1'}, set(result.split(', ')))
result = self.parser.eval(r"$performer(drums \()", context=context)
self.assertEqual({'Drummer'}, set(result.split(', ')))
def test_cmd_performer_custom_join(self):
context = Metadata()
context['performer:guitar'] = 'Foo1'