diff --git a/picard/script.py b/picard/script.py index af7837fe1..e8490fe01 100644 --- a/picard/script.py +++ b/picard/script.py @@ -337,7 +337,7 @@ def func_set(parser, name, value): def func_setlist(parser, name, value, split_chars = '; '): """Sets the variable ``name`` to ``value`` as a list; splitting by the passed string.""" - return func_set(parser, name, value.split(split_chars) if value else value) + return func_set(parser, name, value.split(split_chars) if value and split_chars else value) def func_get(parser, name): """Returns the variable ``name`` (equivalent to ``%name%``).""" diff --git a/test/test_script.py b/test/test_script.py index 89c38908e..0fa314970 100644 --- a/test/test_script.py +++ b/test/test_script.py @@ -73,8 +73,10 @@ class ScriptParserTest(unittest.TestCase): self.assertEqual("", self.parser.eval("$setlist(test,multi##valued##test##,##)", context)) # no return value self.assertEqual(["multi", "valued", "test"], context.getall("test")) - def test_cmd_setlist_empty_splitter_throws_error(self): - self.assertRaises(ValueError, lambda x: x.parser.eval("$setlist(test,multivalued,)"), self) + def test_cmd_setlist_empty_splitter_does_nothing(self): + context = Metadata() + self.assertEqual("", self.parser.eval("$setlist(test,multi; valued,)", context)) # no return value + self.assertEqual(["multi; valued"], context.getall("test")) def test_cmd_get(self): context = Metadata()