aboutsummaryrefslogtreecommitdiff
path: root/scripts/run-functional-tests.py
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/run-functional-tests.py')
-rw-r--r--scripts/run-functional-tests.py14
1 files changed, 13 insertions, 1 deletions
diff --git a/scripts/run-functional-tests.py b/scripts/run-functional-tests.py
index 1b8fb2ddef..3e931b248c 100644
--- a/scripts/run-functional-tests.py
+++ b/scripts/run-functional-tests.py
@@ -4,7 +4,7 @@ import os
import sys
import textwrap
-from lupa import LuaRuntime
+from lupa import LuaRuntime, as_attrgetter
from neovim import Nvim, spawn_session
@@ -33,6 +33,14 @@ function(d)
end
''')
+def to_table(obj):
+ if type(obj) in [tuple, list]:
+ return list_to_table(list(to_table(e) for e in obj))
+ if type(obj) is dict:
+ return dict_to_table(as_attrgetter(
+ dict((k, to_table(v)) for k, v in obj.items())))
+ return obj
+
nvim_prog = os.environ.get('NVIM_PROG', 'build/bin/nvim')
nvim_argv = [nvim_prog, '-u', 'NONE', '--embed']
@@ -51,6 +59,9 @@ nvim = Nvim.from_session(session)
def nvim_command(cmd):
nvim.command(cmd)
+def nvim_eval(expr):
+ return to_table(nvim.eval(expr))
+
def nvim_feed(input, mode=''):
nvim.feedkeys(input)
@@ -63,6 +74,7 @@ def nvim_replace_termcodes(input, *opts):
expose = [
nvim_command,
+ nvim_eval,
nvim_feed,
nvim_replace_termcodes,
buffer_slice,