let s:tests = {} " Utilities function! s:Run(function) let o = &filetype " let output = call(a:function, ['']) " call function(a:function) let output = call(a:function, []) let &filetype = o " expecting output to either be a 1 or 0 let s:tests[a:function[2:]] = output return output endfunction function! s:Cleanup() let error = 0 for test in keys(s:tests) if !s:tests[test] let error = 1 endif echom test . ' : ' . s:tests[test] endfor if error " make vim exit with a non-zero value cquit! else qall! endif endfunction " Test Definitions function! s:valid_option() let &filetype = 'python' let g:neoformat_python_enabled = ['autopep8', 'yapf'] let out = neoformat#CompleteFormatters('auto','', 0) return ['autopep8'] == out endfunction function! s:invalid_option() let &filetype = 'javascript' let g:neoformat_python_enabled = ['autopep8'] let out = neoformat#CompleteFormatters('autopep8', '', 0) return [] == out endfunction function! s:formtprg_option() let &filetype = 'javascript' let &formatprg = 'testing' let out = neoformat#CompleteFormatters('test', '', 0) return [] == out endfunction " Run Tests call s:Run('s:valid_option') call s:Run('s:invalid_option') call s:Run('s:formtprg_option') " Check the outputs call s:Cleanup()