spacevim/bundle/neoformat/test/test.py
JIe 2bb7059579
Some checks failed
Detach Plugins / check (FlyGrep.vim) (push) Has been cancelled
Detach Plugins / check (GitHub.vim) (push) Has been cancelled
Detach Plugins / check (JavaUnit.vim) (push) Has been cancelled
Detach Plugins / check (SourceCounter.vim) (push) Has been cancelled
Detach Plugins / check (cpicker.nvim) (push) Has been cancelled
Detach Plugins / check (dein-ui.vim) (push) Has been cancelled
Detach Plugins / check (git.vim) (push) Has been cancelled
Detach Plugins / check (iedit.vim) (push) Has been cancelled
Detach Plugins / check (scrollbar.vim) (push) Has been cancelled
Detach Plugins / check (vim-chat) (push) Has been cancelled
Detach Plugins / check (vim-cheat) (push) Has been cancelled
Detach Plugins / check (vim-todo) (push) Has been cancelled
Detach Plugins / check (xmake.vim) (push) Has been cancelled
test / Linux (nvim, nightly) (push) Has been cancelled
test / Linux (nvim, v0.3.8) (push) Has been cancelled
test / Linux (nvim, v0.4.0) (push) Has been cancelled
test / Linux (nvim, v0.4.2) (push) Has been cancelled
test / Linux (nvim, v0.4.3) (push) Has been cancelled
test / Linux (nvim, v0.4.4) (push) Has been cancelled
test / Linux (nvim, v0.5.0) (push) Has been cancelled
test / Linux (nvim, v0.5.1) (push) Has been cancelled
test / Linux (nvim, v0.6.0) (push) Has been cancelled
test / Linux (nvim, v0.6.1) (push) Has been cancelled
test / Linux (nvim, v0.7.0) (push) Has been cancelled
test / Linux (nvim, v0.7.2) (push) Has been cancelled
test / Linux (nvim, v0.8.0) (push) Has been cancelled
test / Linux (nvim, v0.8.1) (push) Has been cancelled
test / Linux (nvim, v0.8.2) (push) Has been cancelled
test / Linux (nvim, v0.8.3) (push) Has been cancelled
test / Linux (nvim, v0.9.0) (push) Has been cancelled
test / Linux (nvim, v0.9.1) (push) Has been cancelled
test / Linux (true, vim, v7.4.052) (push) Has been cancelled
test / Linux (true, vim, v7.4.1689) (push) Has been cancelled
test / Linux (true, vim, v7.4.629) (push) Has been cancelled
test / Linux (true, vim, v8.0.0027) (push) Has been cancelled
test / Linux (true, vim, v8.0.0183) (push) Has been cancelled
test / Linux (vim, nightly) (push) Has been cancelled
test / Linux (vim, v8.0.0184) (push) Has been cancelled
test / Linux (vim, v8.0.1453) (push) Has been cancelled
test / Linux (vim, v8.1.2269) (push) Has been cancelled
test / Linux (vim, v8.2.2434) (push) Has been cancelled
test / Linux (vim, v8.2.3995) (push) Has been cancelled
test / Windows (nvim, nightly) (push) Has been cancelled
test / Windows (nvim, v0.3.8) (push) Has been cancelled
test / Windows (nvim, v0.4.2) (push) Has been cancelled
test / Windows (nvim, v0.4.3) (push) Has been cancelled
test / Windows (nvim, v0.4.4) (push) Has been cancelled
test / Windows (nvim, v0.5.0) (push) Has been cancelled
test / Windows (nvim, v0.5.1) (push) Has been cancelled
test / Windows (nvim, v0.6.0) (push) Has been cancelled
test / Windows (nvim, v0.6.1) (push) Has been cancelled
test / Windows (nvim, v0.7.0) (push) Has been cancelled
test / Windows (nvim, v0.7.2) (push) Has been cancelled
test / Windows (nvim, v0.8.0) (push) Has been cancelled
test / Windows (nvim, v0.8.1) (push) Has been cancelled
test / Windows (nvim, v0.8.2) (push) Has been cancelled
test / Windows (nvim, v0.8.3) (push) Has been cancelled
test / Windows (nvim, v0.9.0) (push) Has been cancelled
test / Windows (nvim, v0.9.1) (push) Has been cancelled
test / Windows (vim, nightly) (push) Has been cancelled
test / Windows (vim, v7.4.1185) (push) Has been cancelled
test / Windows (vim, v7.4.1689) (push) Has been cancelled
test / Windows (vim, v8.0.0027) (push) Has been cancelled
test / Windows (vim, v8.0.1453) (push) Has been cancelled
test / Windows (vim, v8.1.2269) (push) Has been cancelled
test / Windows (vim, v8.2.2434) (push) Has been cancelled
test / Windows (vim, v8.2.3995) (push) Has been cancelled
docker / docker (push) Has been cancelled
mirror / check (coding) (push) Has been cancelled
mirror / check (gitee) (push) Has been cancelled
mirror / check (gitlab) (push) Has been cancelled
init
2024-08-21 14:17:26 +08:00

139 lines
4.0 KiB
Python

#!/usr/bin/env python3.6
import subprocess
from os import listdir
from shutil import copyfile
def run_vim_cmd(cmd, filename=''):
cmd = f'nvim -u vimrc -c "set verbose=1 | {cmd} | wq " --headless {filename}'
return run_cmd(cmd)
def run_cmd(cmd):
return subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True).wait()
def readlines(filename):
with open(filename) as f:
return f.readlines()
def test_formatters():
'''
run formatters on entire buffer
'''
for filename in listdir('before'):
output_file = '/tmp/neoformat_' + filename
formatter = filename.split('.')[0]
cmd = f'nvim -u vimrc -c "set verbose=1 | Neoformat {formatter} | w! {output_file} | q! " --headless ./before/{filename}'
run_cmd(cmd)
before = readlines(output_file)
after = readlines('./after/' + filename)
assert before == after
def test_visual_selection_multi_filetype():
'''
Format different filetypes in one file
'''
filename_before = 'visual_selection_before.txt'
output_file = '/tmp/neoformat_' + filename_before
copyfile(filename_before, output_file)
for test in [('python', 4, 7), ('css', 9, 9), ('css', 14, 15)]:
(filetype, start_line, end_line) = test
print(start_line)
vim_cmd = f'{start_line},{end_line}Neoformat! {filetype}'
cmd = f'nvim -u vimrc -c "set verbose=1 | {vim_cmd} | wq " --headless {output_file}'
run_cmd(cmd)
before = readlines(output_file)
after = readlines('visual_selection_after.txt')
assert before == after
def test_visual_selection_with_filetype_and_formatter():
'''
Test that passing filetype and formatter to Neoformat! works
'''
dir_before = 'visual_before/'
dir_after = 'visual_after/'
for filename in listdir(dir_before):
(filetype, formatter, start_line, end_line) = filename.split('_')
output_file = '/tmp/neoformat_' + filename
cmd = f'nvim -u vimrc -c "set verbose=1 | {start_line},{end_line}Neoformat! {filetype} {formatter} | w! {output_file} | q! " --headless {dir_before + filename}'
run_cmd(cmd)
before = readlines(output_file)
after = readlines(dir_after + filename)
assert before == after
def test_formatprg_with_neoformat():
'''
Test that formatprg is processed by neoformat
'''
dir_before = 'before/'
filename = 'cssbeautify.css'
output_file = '/tmp/neoformat_fmt_prg_' + filename
viml = '''
let &formatprg = 'css-beautify -s 6 -n'
let g:neoformat_try_formatprg = 1
'''
cmd = f'nvim -u vimrc -c "set verbose=1 | {viml} | Neoformat | w! {output_file} | q! " --headless {dir_before + filename}'
run_cmd(cmd)
before = readlines(output_file)
after = readlines('./after/cssbeautify-indent-6.css')
assert before == after
def test_formatprg_without_enable():
'''
Test that formatprg isn't use when not enabled
'''
dir_before = 'before/'
filename = 'cssbeautify.css'
output_file = '/tmp/neoformat_fmtprg_not_enabled' + filename
viml = '''
let &formatprg = 'css-beautify -s 6 -n'
'''
cmd = f'nvim -u vimrc -c "set verbose=1 | {viml} | Neoformat | w! {output_file} | q! " --headless {dir_before + filename}'
run_cmd(cmd)
before = readlines(output_file)
after = readlines('./after/cssbeautify.css')
assert before == after
def test_vader():
'''
run *.vader tests
'''
cmd = f'nvim -u vimrc -c "Vader! *.vader" --headless'
exit_code = run_cmd(cmd)
assert exit_code == 0
def test_autocompletion():
'''
run the vim autocompletion tests
'''
cmd = f'nvim -u vimrc -c "source autocomplete_test.vim" --headless'
exit_code = run_cmd(cmd)
assert exit_code == 0
def test_viml_syntax():
'''
run vint to check vim syntax
'''
exit_code = run_cmd('vint ../')
assert exit_code == 0
if __name__ == '__main__':
# run all functions with names in the form of 'test_...'
[func() for func in (val for key, val in vars().items()
if key.startswith('test_'))]