37 lines
1.5 KiB
Python
37 lines
1.5 KiB
Python
from pathlib import Path
|
|
|
|
from band_aider.strategies.python.python_source_discovery import PythonSourceDiscovery
|
|
from band_aider.judgement.file_parser import FileParser
|
|
from band_aider.judgement.model2vec_code_parser import NarrowParser
|
|
from band_aider.judgement.parser_factory import ParserFactory
|
|
from band_aider.judgement.prompt_formatter import MarkdownPromptFormatterBuilder
|
|
from band_aider.judgement.strict_parser import StrictParser
|
|
from tests.support.completion_clients import StaticOpenAICompatibleClient
|
|
from tests.support.memory_repo_exec import MemoryRepoExec
|
|
|
|
|
|
def test_strict_factory_passes_explicit_semi_related_threshold_to_inner_parser() -> None:
|
|
"""Strict parser construction retains the configured narrow semantic threshold."""
|
|
|
|
repo_root = Path("/testbed")
|
|
repo_exec = MemoryRepoExec(repo_root)
|
|
factory = ParserFactory(
|
|
client=StaticOpenAICompatibleClient('{"summary": "fixture"}'),
|
|
prompt_formatter_builder=MarkdownPromptFormatterBuilder(),
|
|
repo_exec=repo_exec,
|
|
source_discovery_strategy=PythonSourceDiscovery(
|
|
repo_root,
|
|
repo_root / "tests",
|
|
repo_exec=repo_exec,
|
|
),
|
|
scope="strict",
|
|
policy_anchors=("Symbol",),
|
|
semi_related_threshold=0.33,
|
|
)
|
|
|
|
parser = factory()
|
|
|
|
assert isinstance(parser, StrictParser)
|
|
assert isinstance(parser.inner, NarrowParser)
|
|
assert isinstance(parser.inner.inner, FileParser)
|
|
assert parser.inner.semantic_threshold == 0.33
|