test: Use lua to perform sanity API checks

Sanity API checks made by the python-client in the api-python travis target were
converted to lua and will now live in this repository. This will simplify
performing breaking changes to the API as it won't be necessary to send parallel
PRs the python-client.
This commit is contained in:
Thiago de Arruda
2014-10-08 13:56:01 -03:00
parent 69561ea922
commit 0c2ec77ae0
9 changed files with 580 additions and 36 deletions

View File

@@ -24,13 +24,15 @@ if os.getenv('VALGRIND') then
end
local session
do
local function restart()
local loop = Loop.new()
local msgpack_stream = MsgpackStream.new(loop)
local async_session = AsyncSession.new(msgpack_stream)
session = Session.new(async_session)
loop:spawn(nvim_argv)
end
restart()
local function request(method, ...)
local status, rv = session:request(method, ...)
@@ -40,6 +42,18 @@ local function request(method, ...)
return rv
end
local function next_message()
return session:next_message()
end
local function run(request_cb, notification_cb, setup_cb)
session:run(request_cb, notification_cb, setup_cb)
end
local function stop()
session:stop()
end
local function nvim_command(cmd)
request('vim_command', cmd)
end
@@ -141,7 +155,7 @@ local function neq(expected, actual)
end
local function expect(contents, first, last, buffer_index)
return eq(dedent(contents), buffer_slice(first, last, buffer_idx))
return eq(dedent(contents), buffer_slice(first, last, buffer_index))
end
rawfeed([[:function BeforeEachTest()
@@ -182,14 +196,77 @@ rawfeed([[:function BeforeEachTest()
endfunction
]])
local function ok(expr)
assert.is_true(expr)
end
local function nvim(method, ...)
return request('vim_'..method, ...)
end
local function buffer(method, ...)
return request('buffer_'..method, ...)
end
local function window(method, ...)
return request('window_'..method, ...)
end
local function tabpage(method, ...)
return request('tabpage_'..method, ...)
end
local function curbuf(method, ...)
local buf = nvim('get_current_buffer')
if not method then
return buf
end
return buffer(method, buf, ...)
end
local function curbuf_contents()
return table.concat(curbuf('get_line_slice', 0, -1, true, true), '\n')
end
local function curwin(method, ...)
local win = nvim('get_current_window')
if not method then
return win
end
return window(method, win, ...)
end
local function curtab(method, ...)
local tab = nvim('get_current_tabpage')
if not method then
return tab
end
return tabpage(method, tab, ...)
end
return {
clear = clear,
restart = restart,
rawfeed = rawfeed,
insert = insert,
feed = feed,
execute = execute,
eval = eval,
request = request,
next_message = next_message,
run = run,
stop = stop,
eq = eq,
neq = neq,
expect = expect
expect = expect,
ok = ok,
nvim = nvim,
buffer = buffer,
window = window,
tabpage = tabpage,
curbuf = curbuf,
curwin = curwin,
curtab = curtab,
curbuf_contents = curbuf_contents
}