Spaces:
Sleeping
Sleeping
File size: 2,322 Bytes
2e818da | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | """Tests for `app.rag.pipeline_version` (Task 8, Step 1).
Two things must be provably true before any dedup mechanism gets built on
top of this registry:
1. `rag-naive-v1` is frozen -- exactly `dedup_enabled=False`,
`overfetch_factor=1` -- forever. If someone edits the registry entry by
accident while working on `rag-dedup-v2`, this test catches it.
2. The unspecified/default path (`get_pipeline_version(None)`) resolves to
that exact frozen v1 behavior, so every ordinary product call site that
never passes a pipeline version is provably unaffected by anything
registered here.
An unknown, explicitly-requested version name is a hard error, never a
silent fallback to v1 -- see `UnknownPipelineVersionError`.
"""
from __future__ import annotations
import pytest
from app.rag.pipeline_version import (
DEFAULT_PIPELINE_VERSION,
PipelineVersion,
UnknownPipelineVersionError,
get_pipeline_version,
registered_versions,
)
def test_naive_v1_is_registered_and_frozen():
pv = get_pipeline_version("rag-naive-v1")
assert pv == PipelineVersion(
name="rag-naive-v1", dedup_enabled=False, overfetch_factor=1
)
def test_dedup_v2_is_registered_with_overfetch_and_dedup_enabled():
pv = get_pipeline_version("rag-dedup-v2")
assert pv.dedup_enabled is True
assert pv.overfetch_factor > 1
def test_default_none_resolves_to_naive_v1_exactly():
default_pv = get_pipeline_version(None)
explicit_v1 = get_pipeline_version("rag-naive-v1")
assert default_pv == explicit_v1
assert default_pv.name == DEFAULT_PIPELINE_VERSION
assert default_pv.dedup_enabled is False
assert default_pv.overfetch_factor == 1
def test_unknown_explicit_version_raises():
with pytest.raises(UnknownPipelineVersionError):
get_pipeline_version("rag-reranked-v3-does-not-exist")
def test_unknown_version_error_message_lists_registered_versions():
with pytest.raises(UnknownPipelineVersionError) as exc_info:
get_pipeline_version("not-a-real-version")
message = str(exc_info.value)
assert "rag-naive-v1" in message
assert "rag-dedup-v2" in message
def test_registered_versions_contains_both_known_versions():
versions = registered_versions()
assert "rag-naive-v1" in versions
assert "rag-dedup-v2" in versions
|