diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/completion/test_public_completion_api.vader | 63 | ||||
-rw-r--r-- | test/python/test_deoplete_source.py | 27 |
2 files changed, 85 insertions, 5 deletions
diff --git a/test/completion/test_public_completion_api.vader b/test/completion/test_public_completion_api.vader new file mode 100644 index 00000000..d4db2d6f --- /dev/null +++ b/test/completion/test_public_completion_api.vader @@ -0,0 +1,63 @@ +Before: + call ale#linter#Reset() + + unlet! b:ale_linters + unlet! b:ale_completion_info + unlet! b:ale_completion_response + unlet! b:ale_completion_parser + unlet! b:ale_completion_result + + function! Identity(x) abort + return a:x + endfunction + +After: + delfunction Identity + + call ale#linter#Reset() + + unlet! b:ale_linters + unlet! b:ale_completion_info + unlet! b:ale_completion_response + unlet! b:ale_completion_parser + unlet! b:ale_completion_result + +Execute(ale#completion#GetCompletionResult() should return v:null when there are no results): + AssertEqual v:null, ale#completion#GetCompletionResult() + +Execute(ale#completion#GetCompletionResult() should parse the result when it has yet to be parsed): + let b:ale_completion_response = [1] + let b:ale_completion_parser = 'Identity' + + AssertEqual [1], ale#completion#GetCompletionResult() + Assert !exists('b:ale_completion_response') + Assert !exists('b:ale_completion_parser') + AssertEqual [1], b:ale_completion_result + +Execute(ale#completion#GetCompletionResult() should return a result computed previously): + let b:ale_completion_result = [1] + + Assert !exists('b:ale_completion_response') + Assert !exists('b:ale_completion_parser') + AssertEqual [1], ale#completion#GetCompletionResult() + +Execute(ale#completion#GetCompletionPosition() should return 0 when there is no completion information): + AssertEqual 0, ale#completion#GetCompletionPosition() + +Given python(Some Python file): + foo bar + +Execute(ale#completion#GetCompletionPosition() should return the position in the file when information is available): + let b:ale_completion_info = {'line': 1, 'column': 6} + + " This is the first character of 'bar' + AssertEqual 4, ale#completion#GetCompletionPosition() + +Execute(ale#completion#CanProvideCompletions should return 0 when no completion sources are available): + AssertEqual 0, ale#completion#CanProvideCompletions() + +Execute(ale#completion#CanProvideCompletions should return 1 when at least one completion source is available): + runtime ale_linters/python/pyls.vim + let b:ale_linters = ['pyls'] + + AssertEqual 1, ale#completion#CanProvideCompletions() diff --git a/test/python/test_deoplete_source.py b/test/python/test_deoplete_source.py index 94fa66c2..28eec5cd 100644 --- a/test/python/test_deoplete_source.py +++ b/test/python/test_deoplete_source.py @@ -23,7 +23,7 @@ class DeopleteSourceTest(unittest.TestCase): super(DeopleteSourceTest, self).setUp() self.call_list = [] - self.call_results = {} + self.call_results = {'ale#completion#CanProvideCompletions': 1} self.source = ale_module.Source('vim') self.source.vim = VimMock(self.call_list, self.call_results) @@ -59,27 +59,41 @@ class DeopleteSourceTest(unittest.TestCase): def test_request_completion_results(self): context = {'is_async': False} - self.assertIsNone(self.source.gather_candidates(context)) + self.assertEqual(self.source.gather_candidates(context), []) self.assertEqual(context, {'is_async': True}) self.assertEqual(self.call_list, [ + ('ale#completion#CanProvideCompletions', ()), ('ale#completion#GetCompletions', ('deoplete',)), ]) + def test_request_completion_results_from_buffer_without_providers(self): + self.call_results['ale#completion#CanProvideCompletions'] = 0 + context = {'is_async': False} + + self.assertIsNone(self.source.gather_candidates(context), []) + self.assertEqual(context, {'is_async': False}) + self.assertEqual(self.call_list, [ + ('ale#completion#CanProvideCompletions', ()), + ]) + def test_refresh_completion_results(self): context = {'is_async': False} - self.assertIsNone(self.source.gather_candidates(context)) + self.assertEqual(self.source.gather_candidates(context), []) self.assertEqual(context, {'is_async': True}) self.assertEqual(self.call_list, [ + ('ale#completion#CanProvideCompletions', ()), ('ale#completion#GetCompletions', ('deoplete',)), ]) context = {'is_async': True, 'is_refresh': True} - self.assertIsNone(self.source.gather_candidates(context)) + self.assertEqual(self.source.gather_candidates(context), []) self.assertEqual(context, {'is_async': True, 'is_refresh': True}) self.assertEqual(self.call_list, [ + ('ale#completion#CanProvideCompletions', ()), ('ale#completion#GetCompletions', ('deoplete',)), + ('ale#completion#CanProvideCompletions', ()), ('ale#completion#GetCompletions', ('deoplete',)), ]) @@ -87,9 +101,10 @@ class DeopleteSourceTest(unittest.TestCase): context = {'is_async': True} self.call_results['ale#completion#GetCompletionResult'] = None - self.assertIsNone(self.source.gather_candidates(context)) + self.assertEqual(self.source.gather_candidates(context), []) self.assertEqual(context, {'is_async': True}) self.assertEqual(self.call_list, [ + ('ale#completion#CanProvideCompletions', ()), ('ale#completion#GetCompletionResult', ()), ]) @@ -100,6 +115,7 @@ class DeopleteSourceTest(unittest.TestCase): self.assertEqual(self.source.gather_candidates(context), []) self.assertEqual(context, {'is_async': False}) self.assertEqual(self.call_list, [ + ('ale#completion#CanProvideCompletions', ()), ('ale#completion#GetCompletionResult', ()), ]) @@ -126,5 +142,6 @@ class DeopleteSourceTest(unittest.TestCase): ]) self.assertEqual(context, {'is_async': False}) self.assertEqual(self.call_list, [ + ('ale#completion#CanProvideCompletions', ()), ('ale#completion#GetCompletionResult', ()), ]) |