diff --git a/test/conftest.py b/test/conftest.py index 92b3430..c0bbe0a 100644 --- a/test/conftest.py +++ b/test/conftest.py @@ -7,6 +7,7 @@ from sensai.util.logging import LOG_DEFAULT_FORMAT, configure from multilspy.language_server import SyncLanguageServer from multilspy.multilspy_config import Language, MultilspyConfig from multilspy.multilspy_logger import MultilspyLogger +from serena.util.file_system import GitignoreParser configure(level=logging.DEBUG) @@ -26,8 +27,14 @@ def get_repo_path(language: Language) -> Path: return Path(__file__).parent / "resources" / "repos" / language / "test_repo" -def create_ls(language: Language, repo_path: str): - config = MultilspyConfig(code_language=language) +def create_ls(language: Language, repo_path: str | None = None, ignored_paths: list[str] | None = None) -> SyncLanguageServer: + ignored_paths = ignored_paths or [] + if repo_path is None: + repo_path = str(get_repo_path(language)) + gitignore_parser = GitignoreParser(str(repo_path)) + for spec in gitignore_parser.get_ignore_specs(): + ignored_paths.extend(spec.patterns) + config = MultilspyConfig(code_language=language, ignored_paths=ignored_paths) logger = MultilspyLogger(log_level=logging.DEBUG) # Simple way: Use basicConfig to set format for all handlers diff --git a/test/multilspy/python/test_retrieval_with_ignored_dirs.py b/test/multilspy/python/test_retrieval_with_ignored_dirs.py index 70f0e37..0db668e 100644 --- a/test/multilspy/python/test_retrieval_with_ignored_dirs.py +++ b/test/multilspy/python/test_retrieval_with_ignored_dirs.py @@ -4,45 +4,18 @@ from pathlib import Path import pytest from multilspy.language_server import SyncLanguageServer -from multilspy.multilspy_config import Language, MultilspyConfig -from multilspy.multilspy_logger import MultilspyLogger -from serena.util.file_system import GitignoreParser -from test.conftest import get_repo_path +from multilspy.multilspy_config import Language +from test.conftest import create_ls # This mark will be applied to all tests in this module pytestmark = pytest.mark.python -def create_ls_with_ignored_dirs( - ignored_paths: list[str] | None = None, - repo_path: Path | None = None, - language: Language = Language.PYTHON, -) -> SyncLanguageServer: - """Helper function to create a SyncLanguageServer with ignored directories.""" - if ignored_paths is None: - ignored_paths = [] - - if repo_path is None: - repo_path = get_repo_path(language) - - gitignore_parser = GitignoreParser(str(repo_path)) - for spec in gitignore_parser.get_ignore_specs(): - ignored_paths.extend(spec.patterns) - - config = MultilspyConfig( - code_language=language, - trace_lsp_communication=False, - ignored_paths=ignored_paths, # Configure the relative path to be ignored - ) - logger = MultilspyLogger() - return SyncLanguageServer.create(config, logger, str(repo_path)) - - @pytest.fixture(scope="module") def ls_with_ignored_dirs() -> Generator[SyncLanguageServer, None, None]: """Fixture to set up an LS for the python test repo with the 'scripts' directory ignored.""" ignored_paths = ["scripts", "custom_test"] - ls = create_ls_with_ignored_dirs(ignored_paths=ignored_paths, language=Language.PYTHON) + ls = create_ls(ignored_paths=ignored_paths, language=Language.PYTHON) ls.start() try: yield ls @@ -77,7 +50,7 @@ def test_find_references_ignores_dir(ls_with_ignored_dirs: SyncLanguageServer): def test_refs_and_symbols_with_glob_patterns(repo_path: Path) -> None: """Tests that refs and symbols with glob patterns are ignored.""" ignored_paths = ["*ipts", "custom_t*"] - ls = create_ls_with_ignored_dirs(ignored_paths=ignored_paths, repo_path=repo_path, language=Language.PYTHON) + ls = create_ls(ignored_paths=ignored_paths, repo_path=str(repo_path), language=Language.PYTHON) ls.start() # same as in the above tests root = ls.request_full_symbol_tree()[0]