More logging in tests

This commit is contained in:
Michael Panchenko committed 2025-06-09 22:01:03 +02:00
1 parent 1c6af8cfea
commit d2cd006007
2 files changed
+30 -2

No files matched your search

+7 -1
View File
@@ -1,11 +1,15 @@
import logging
from pathlib import Path
import pytest
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
configure(level=logging.DEBUG)
@pytest.fixture(scope="session")
def resources_dir() -> Path:
@@ -24,7 +28,9 @@ def get_repo_path(language: Language) -> Path:
def create_ls(language: Language, repo_path: str):
config = MultilspyConfig(code_language=language)
logger = MultilspyLogger()
logger = MultilspyLogger(log_level=logging.DEBUG)
logger.logger.setLevel(logging.DEBUG)
logger.logger.handlers[0].setFormatter(logging.Formatter(LOG_DEFAULT_FORMAT))
return SyncLanguageServer.create(config, logger, repo_path)
+23 -1
View File
@@ -1,6 +1,8 @@
import logging
import os
import shutil
import tempfile
import time
from abc import abstractmethod
from collections.abc import Iterator
from contextlib import contextmanager
@@ -16,6 +18,8 @@ from test.conftest import create_ls, get_repo_path
pytestmark = pytest.mark.snapshot
log = logging.getLogger(__name__)
class EditingTest:
def __init__(self, language: Language, rel_path: str):
@@ -35,14 +39,32 @@ class EditingTest:
self.repo_path = temp_dir / self.original_repo_path.name
language_server = None # Initialize language_server
try:
print(f"Copying repo from {self.original_repo_path} to {self.repo_path}")
shutil.copytree(self.original_repo_path, self.repo_path)
# prevent deadlock on Windows due to file locks caused by antivirus or some other external software
# wait for a long time here
if os.name == "nt":
time.sleep(1)
log.info(f"Creating language server for {self.language} {self.rel_path}")
language_server = create_ls(self.language, str(self.repo_path))
log.info(f"Starting language server for {self.language} {self.rel_path}")
language_server.start()
log.info(f"Language server started for {self.language} {self.rel_path}")
yield SymbolManager(lang_server=language_server)
finally:
if language_server is not None and language_server.is_running():
log.info(f"Stopping language server for {self.language} {self.rel_path}")
language_server.stop()
shutil.rmtree(temp_dir)
# attempt at trigger of garbage collection
language_server = None
log.info(f"Language server stopped for {self.language} {self.rel_path}")
# prevent deadlock on Windows due to lingering file locks
if os.name == "nt":
time.sleep(1)
log.info(f"Removing temp directory {temp_dir}")
shutil.rmtree(temp_dir, ignore_errors=True)
log.info(f"Temp directory {temp_dir} removed")
def _read_file(self, rel_path: str) -> str:
"""Read the content of a file in the test repository."""