11# Copyright (c) 2026 Beijing Volcano Engine Technology Co., Ltd.
22# SPDX-License-Identifier: AGPL-3.0
3- """Regression test for VikingFS.find without rerank configuration ."""
3+ """Regression tests for VikingFS.find retrieval behavior ."""
44
55import contextvars
66from unittest .mock import AsyncMock , MagicMock
77
88import pytest
99
10+ from openviking .retrieve .hierarchical_retriever import RetrieverMode
1011from openviking .server .identity import RequestContext , Role
1112from openviking .storage .viking_fs import VikingFS
1213from openviking_cli .retrieve .types import ContextType , MatchedContext , QueryResult
@@ -51,13 +52,15 @@ async def retrieve(
5152 typed_query ,
5253 ctx ,
5354 limit ,
55+ mode ,
5456 score_threshold ,
5557 scope_dsl ,
5658 level ,
5759 ):
5860 captured ["typed_query" ] = typed_query
5961 captured ["ctx" ] = ctx
6062 captured ["limit" ] = limit
63+ captured ["mode" ] = mode
6164 captured ["score_threshold" ] = score_threshold
6265 captured ["scope_dsl" ] = scope_dsl
6366 captured ["level" ] = level
@@ -98,6 +101,7 @@ async def retrieve(
98101 assert captured ["typed_query" ].target_directories == ["viking://resources/docs" ]
99102 assert captured ["ctx" ] == fs ._ctx_or_default .return_value
100103 assert captured ["limit" ] == 3
104+ assert captured ["mode" ] == RetrieverMode .QUICK
101105 assert captured ["score_threshold" ] == 0.2
102106 assert captured ["scope_dsl" ] == {"category" : "doc" }
103107 assert captured ["level" ] is None
@@ -118,11 +122,13 @@ async def retrieve(
118122 typed_query ,
119123 ctx ,
120124 limit ,
125+ mode ,
121126 score_threshold ,
122127 scope_dsl ,
123128 level ,
124129 ):
125130 captured ["typed_query" ] = typed_query
131+ captured ["mode" ] = mode
126132 return QueryResult (
127133 query = typed_query ,
128134 matched_contexts = [
@@ -153,3 +159,37 @@ async def retrieve(
153159 assert typed_query .embedding_input == [
154160 {"type" : "image_url" , "image_url" : {"url" : "data:image/png;base64,abc" }}
155161 ]
162+ assert captured ["mode" ] == RetrieverMode .QUICK
163+
164+
165+ @pytest .mark .asyncio
166+ async def test_find_uses_quick_mode_with_rerank_config (monkeypatch ) -> None :
167+ fs = _make_viking_fs ()
168+ fs .rerank_config = MagicMock (name = "rerank_config" )
169+ captured = {}
170+
171+ class FakeRetriever :
172+ def __init__ (self , storage , embedder , rerank_config , retrieval_config ):
173+ captured ["rerank_config" ] = rerank_config
174+
175+ async def retrieve (self , typed_query , ** kwargs ):
176+ captured ["mode" ] = kwargs .get ("mode" )
177+ return QueryResult (
178+ query = typed_query ,
179+ matched_contexts = [],
180+ searched_directories = ["viking://resources/docs" ],
181+ )
182+
183+ monkeypatch .setattr (
184+ "openviking.retrieve.hierarchical_retriever.HierarchicalRetriever" ,
185+ FakeRetriever ,
186+ )
187+
188+ result = await fs .find (
189+ "guide" ,
190+ target_uri = "viking://resources/docs" ,
191+ )
192+
193+ assert result .total == 0
194+ assert captured ["rerank_config" ] is fs .rerank_config
195+ assert captured ["mode" ] == RetrieverMode .QUICK
0 commit comments