Also test FunctionRegistryItem()

This commit is contained in:
Laurent Monin
2020-03-08 15:44:44 +01:00
committed by Philipp Wolfer
parent 7d0e185a85
commit b284c841c4

View File

@@ -31,6 +31,7 @@
import copy
import datetime
import re
from unittest.mock import MagicMock
import markdown
@@ -44,6 +45,7 @@ from picard.metadata import Metadata
from picard.plugin import ExtensionPoint
from picard.script import (
MULTI_VALUED_JOINER,
FunctionRegistryItem,
MultiValue,
ScriptEndOfFile,
ScriptError,
@@ -125,6 +127,25 @@ class ScriptParserTest(PicardTestCase):
"'%s' evaluated to '%s', expected '%s'"
% (script, actual, expected))
def test_function_registry_item(self):
def somefunc():
return 'x'
item = FunctionRegistryItem(somefunc, 'x', 'y', 'doc')
self.assertEqual(item.function, somefunc)
self.assertEqual(item.eval_args, 'x')
self.assertEqual(item.argcount, 'y')
self.assertEqual(item.documentation, 'doc')
regex = r'^'\
+ re.escape(r'FunctionRegistryItem(<function ')\
+ r'[^ ]+'\
+ re.escape(r'.somefunc at ')\
+ r'[^>]+'\
+ re.escape(r'>, x, y, """doc""")')\
+ r'$'
self.assertRegex(repr(item), regex)
def test_script_function_decorator_default(self):
# test default decorator and default prefix
@script_function()