Minor renaming, removed usage of private attrs in tests

This commit is contained in:
Michael Panchenko committed 2026-02-23 13:45:19 +01:00
1 parent aee0123338
commit e9ccd3360f
2 files changed
+22 -12

No files matched your search

+19 -9
View File
@@ -318,16 +318,23 @@ class SerenaAgent:
tool_inclusion_definitions.append(self._context)
if self._context.single_project:
tool_inclusion_definitions.extend(self._single_project_context_tool_inclusion_definitions(project))
# Determine the effective language backend for this session.
# If a startup project is provided and has a per-project override, use it; otherwise use the global config.
self._effective_language_backend = self.serena_config.language_backend
# Since we don't want to change the toolset after startup, the language backend cannot be changed within a running serena session
self._language_backend = self.serena_config.language_backend
_backend_from_project_config = False
if project is not None:
startup_project_config = self._find_project_config(project)
if startup_project_config is not None and startup_project_config.language_backend is not None:
self._effective_language_backend = startup_project_config.language_backend
log.info(f"Using per-project language backend override: {self._effective_language_backend.name}")
log.info(f"Effective language backend for this session: {self._effective_language_backend.name}")
if self._effective_language_backend == LanguageBackend.JETBRAINS:
self._language_backend = startup_project_config.language_backend
_backend_from_project_config = True
if _backend_from_project_config:
log.info(f"Using language backend as configured in project.yml: {self._language_backend.name}")
else:
log.info(f"Using language backend from global serena config: {self._language_backend.name}")
if self._language_backend == LanguageBackend.JETBRAINS:
tool_inclusion_definitions.append(SerenaAgentMode.from_name_internal("jetbrains"))
self._base_tool_set = ToolSet.default().apply(*tool_inclusion_definitions)
self._exposed_tools = AvailableTools([t for t in self._all_tools.values() if self._base_tool_set.includes_name(t.get_name())])
@@ -374,6 +381,9 @@ class SerenaAgent:
if self._gui_log_viewer is not None:
self._gui_log_viewer.set_dashboard_url(dashboard_url)
def get_language_backend(self) -> LanguageBackend:
return self._language_backend
def get_current_tasks(self) -> list[TaskExecutor.TaskInfo]:
"""
Gets the list of tasks currently running or queued for execution.
@@ -624,7 +634,7 @@ class SerenaAgent:
"""
:return: whether this agent uses language server-based code analysis
"""
return self._effective_language_backend == LanguageBackend.LSP
return self._language_backend == LanguageBackend.LSP
def _find_project_config(self, project_path_or_name: str) -> ProjectConfig | None:
"""Find the ProjectConfig for the given project path or name, or None if not found."""
@@ -638,10 +648,10 @@ class SerenaAgent:
# Check if the project requires a different language backend than the one initialized at startup
project_backend = project.project_config.language_backend
if project_backend is not None and project_backend != self._effective_language_backend:
if project_backend is not None and project_backend != self._language_backend:
raise ValueError(
f"Cannot activate project '{project.project_name}': it requires the {project_backend.value} backend, "
f"but this session was initialized with {self._effective_language_backend.value}. "
f"but this session was initialized with {self._language_backend.value}. "
f"Workarounds: (1) Use project activation at startup via the --project flag, "
f"(2) Configure one MCP server per backend in your client."
)
@@ -723,7 +733,7 @@ class SerenaAgent:
result_str += f"Active project: {self._active_project.project_name}\n"
else:
result_str += "No active project\n"
result_str += f"Language backend: {self._effective_language_backend.value}"
result_str += f"Language backend: {self._language_backend.value}"
if self._active_project and self._active_project.project_config.language_backend is not None:
result_str += " (project override)"
result_str += f" (global default: {self.serena_config.language_backend.value})\n"
+3 -3
View File
@@ -217,7 +217,7 @@ class TestEffectiveLanguageBackend:
config, name = _make_config_with_project("test_proj", language_backend=None, global_backend=LanguageBackend.LSP)
agent = SerenaAgent(project=name, serena_config=config)
try:
assert agent._effective_language_backend == LanguageBackend.LSP
assert agent.get_language_backend() == LanguageBackend.LSP
assert agent.is_using_language_server() is True
finally:
agent.shutdown(timeout=5)
@@ -229,7 +229,7 @@ class TestEffectiveLanguageBackend:
)
agent = SerenaAgent(project=name, serena_config=config)
try:
assert agent._effective_language_backend == LanguageBackend.JETBRAINS
assert agent.get_language_backend() == LanguageBackend.JETBRAINS
assert agent.is_using_language_server() is False
finally:
agent.shutdown(timeout=5)
@@ -244,7 +244,7 @@ class TestEffectiveLanguageBackend:
)
agent = SerenaAgent(project=None, serena_config=config)
try:
assert agent._effective_language_backend == LanguageBackend.LSP
assert agent.get_language_backend() == LanguageBackend.LSP
finally:
agent.shutdown(timeout=5)