31 lines
1 KiB
Python
31 lines
1 KiB
Python
# SPDX-FileCopyrightText: 2026 Art Sea LLC
|
|
#
|
|
# SPDX-License-Identifier: AGPL-3.0-only
|
|
|
|
from __future__ import annotations
|
|
|
|
from band_aider.judgement.code_dependency_graph_maintainer import (
|
|
CodeDependencyGraphMaintainer,
|
|
)
|
|
from tests.band_aider_loop_impl import _file_manager
|
|
from band_aider.strategies import LanguageStrategySet
|
|
|
|
|
|
def test_language_strategy_set_singleton_round_trip(tmp_path) -> None:
|
|
"""Verify the singleton template can be pinned and materialized."""
|
|
|
|
file_manager = _file_manager(tmp_path)
|
|
strategy_set = LanguageStrategySet(bindings={CodeDependencyGraphMaintainer: object()})
|
|
|
|
LanguageStrategySet.set_instance(lambda manager, **overrides: strategy_set)
|
|
|
|
assert LanguageStrategySet.get(file_manager) is strategy_set
|
|
|
|
|
|
def test_language_strategy_set_returns_bound_contract() -> None:
|
|
"""Verify contract lookup returns the stored instance."""
|
|
|
|
strategy = object()
|
|
strategy_set = LanguageStrategySet(bindings={CodeDependencyGraphMaintainer: strategy})
|
|
|
|
assert strategy_set[CodeDependencyGraphMaintainer] is strategy
|