def test_should_print_problem_when_exit_code_is_one(self): view = Mock() view.file_name.return_value = "/any-directory/file" self.process.wait.return_value = 1 from RustAutoComplete import run_racer run_racer(view, ["any", "racer", "commands"]) self.printer.assert_called_with('failed: exit_code:', 1, b'this\nis\nthe\nstdout')
def test_should_set_up_racer_command_line(self): view = Mock() view.file_name.return_value = "/any-directory/file" from RustAutoComplete import run_racer run_racer(view, ["any", "racer", "commands"]) self.popen.assert_called_with(['/bin/racer', 'any', 'racer', 'commands', 'any-directory+current.racertmp'], startupinfo=ANY, env=ANY, stdout=ANY)
def test_should_expand_all_search_paths(self): view = Mock() view.file_name.return_value = "/any-directory/file" from RustAutoComplete import run_racer run_racer(view, ["any", "racer", "commands"]) self.popen.assert_called_with(ANY, startupinfo=ANY, env={ 'RUST_SRC_PATH': 'expanded(/path/to/rust/sources):expanded(~/workspace/rust-src):expanded(~/../rust)'}, stdout=ANY)
def test_should_skip_match_when_it_is_from_the_view_file(self): view = Mock() view.file_name.return_value = "/any-directory/file" self.process.wait.return_value = 0 self.process.communicate.return_value = (b"MATCH glob,80,7,/any-directory/file,statement", b"this\nis\nthe\nstderr") from RustAutoComplete import run_racer results = run_racer(view, ["any", "racer", "commands"]) self.assertEqual(results, [])
def test_should_not_return_completions_when_output_is_unexpected(self): view = Mock() view.file_name.return_value = "/any-directory/file" self.process.wait.return_value = 0 self.process.communicate.return_value = (b"This does not start with 'MATCH '", b"this\nis\nthe\nstderr") from RustAutoComplete import run_racer results = run_racer(view, ["any", "racer", "commands"]) self.assertEqual(results, [])
def test_should_return_completions_when_exit_code_is_zero(self): view = Mock() view.file_name.return_value = "/any-directory/file" self.process.wait.return_value = 0 self.process.communicate.return_value = (b"MATCH glob,80,7,/home/hein/git/rust/src/libglob/lib.rs,statement", b"this\nis\nthe\nstderr") from RustAutoComplete import run_racer results = run_racer(view, ["any", "racer", "commands"]) self.assertEqual(len(results), 1) single_result = results[0] self.assertEqual(single_result.path, "/home/hein/git/rust/src/libglob/lib.rs") self.assertEqual(single_result.column, 7) self.assertEqual(single_result.row, 80) self.assertEqual(single_result.completion, "glob") self.assertEqual(single_result.type, "statement")