script_function_documentation(): returns function doc in wanted format, add tests

This commit is contained in:
Laurent Monin
2020-03-07 11:32:36 +01:00
committed by Philipp Wolfer
parent e94692eaef
commit a7680bf75e
2 changed files with 36 additions and 0 deletions

View File

@@ -46,12 +46,14 @@ from picard.script import (
ScriptError,
ScriptExpression,
ScriptFunction,
ScriptFunctionDocError,
ScriptParser,
ScriptRuntimeError,
ScriptSyntaxError,
ScriptUnknownFunction,
register_script_function,
script_function,
script_function_documentation,
)
@@ -174,6 +176,23 @@ class ScriptParserTest(PicardTestCase):
return arg.eval(parser)
self.assertScriptResultEquals("$somefunc($title(x))", "X")
def test_script_function_documentation(self):
# test decorator documentation
markdown = '`$somefunc()`'
@script_function(documentation=markdown)
def func_somefunc(parser):
return "x"
doc = script_function_documentation('somefunc', 'markdown')
self.assertEqual(doc, markdown)
doc = script_function_documentation('somefunc', 'html')
self.assertEqual(doc, '<p><code>$somefunc()</code></p>')
areg = r"^no such function: unknownfunc"
with self.assertRaisesRegex(ScriptFunctionDocError, areg):
script_function_documentation('unknownfunc', 'html')
areg = r"^no such documentation format: unknownformat"
with self.assertRaisesRegex(ScriptFunctionDocError, areg):
script_function_documentation('somefunc', 'unknownformat')
def test_unknown_function(self):
areg = r"^\d+:\d+:\$unknownfunction: Unknown function '\$unknownfunction'"
with self.assertRaisesRegex(ScriptError, areg):