diff options
author | Thiago de Arruda <tpadilha84@gmail.com> | 2014-10-01 09:31:57 -0300 |
---|---|---|
committer | Thiago de Arruda <tpadilha84@gmail.com> | 2014-10-01 09:31:57 -0300 |
commit | f6a008a1824938038bb0801881302ea5b42e1087 (patch) | |
tree | 5619f7303937f4d8f859b01d39946066b156140e /scripts/run-functional-tests.py | |
parent | 549fc9548deaa737ff101806b60cedd7d4970c28 (diff) | |
download | rneovim-f6a008a1824938038bb0801881302ea5b42e1087.tar.gz rneovim-f6a008a1824938038bb0801881302ea5b42e1087.tar.bz2 rneovim-f6a008a1824938038bb0801881302ea5b42e1087.zip |
test: Add 'eval' functional helper
The eval helper transforms vimL expressions into lua tables, it's useful for
verifying function output.
Diffstat (limited to 'scripts/run-functional-tests.py')
-rw-r--r-- | scripts/run-functional-tests.py | 14 |
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, |