示例#1
0
    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')
示例#2
0
    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)
示例#3
0
    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)
示例#4
0
    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, [])
示例#5
0
    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, [])
示例#6
0
    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")