1313
1414
1515class TestHuggingFaceTEIRanker :
16- def test_init (self , del_hf_env_vars ):
16+ def test_init (self , del_hf_env_vars_if_empty ):
1717 """Test initialization with default and custom parameters"""
1818 # Default parameters
1919 ranker = HuggingFaceTEIRanker (url = "https://api.my-tei-service.com" )
2020 assert ranker .url == "https://api.my-tei-service.com"
2121 assert ranker .top_k == 10
2222 assert ranker .timeout == 30
23- assert not ranker .token . resolve_value ( )
23+ assert ranker .token == Secret . from_env_var ([ "HF_API_TOKEN" , "HF_TOKEN" ], strict = False )
2424 assert ranker .max_retries == 3
2525 assert ranker .retry_status_codes is None
2626
@@ -41,7 +41,7 @@ def test_init(self, del_hf_env_vars):
4141 assert ranker .max_retries == 5
4242 assert ranker .retry_status_codes == [500 , 502 , 503 ]
4343
44- def test_to_dict (self , del_hf_env_vars ):
44+ def test_to_dict (self , del_hf_env_vars_if_empty ):
4545 """Test serialization to dict with Secret token"""
4646 component = HuggingFaceTEIRanker (
4747 url = "https://api.my-tei-service.com" , top_k = 5 , timeout = 30 , max_retries = 4 , retry_status_codes = [500 , 502 ]
@@ -60,7 +60,7 @@ def test_to_dict(self, del_hf_env_vars):
6060 assert data ["init_parameters" ]["max_retries" ] == 4
6161 assert data ["init_parameters" ]["retry_status_codes" ] == [500 , 502 ]
6262
63- def test_from_dict (self , del_hf_env_vars ):
63+ def test_from_dict (self , del_hf_env_vars_if_empty ):
6464 """Test deserialization from dict with environment variable token"""
6565 data = {
6666 "type" : "haystack_integrations.components.rankers.huggingface_api.ranker.HuggingFaceTEIRanker" ,
@@ -82,14 +82,14 @@ def test_from_dict(self, del_hf_env_vars):
8282 assert component .max_retries == 4
8383 assert component .retry_status_codes == [500 , 502 ]
8484
85- def test_empty_documents (self , del_hf_env_vars ):
85+ def test_empty_documents (self , del_hf_env_vars_if_empty ):
8686 """Test that empty documents list returns empty result"""
8787 ranker = HuggingFaceTEIRanker (url = "https://api.my-tei-service.com" )
8888 result = ranker .run (query = "test query" , documents = [])
8989 assert result == {"documents" : []}
9090
9191 @patch ("haystack_integrations.components.rankers.huggingface_api.ranker.request_with_retry" )
92- def test_run_with_mock (self , mock_request , del_hf_env_vars ):
92+ def test_run_with_mock (self , mock_request , del_hf_env_vars_if_empty ):
9393 """Test run method with mocked API response"""
9494 # Setup mock response
9595 mock_response = MagicMock (spec = httpx .Response )
@@ -137,7 +137,7 @@ def test_run_with_mock(self, mock_request, del_hf_env_vars):
137137 assert result ["documents" ][2 ].score == 0.75
138138
139139 @patch ("haystack_integrations.components.rankers.huggingface_api.ranker.request_with_retry" )
140- def test_run_with_truncation_direction (self , mock_request , del_hf_env_vars ):
140+ def test_run_with_truncation_direction (self , mock_request , del_hf_env_vars_if_empty ):
141141 """Test run method with truncation direction parameter"""
142142 # Setup mock response
143143 mock_response = MagicMock (spec = httpx .Response )
@@ -170,7 +170,7 @@ def test_run_with_truncation_direction(self, mock_request, del_hf_env_vars):
170170 )
171171
172172 @patch ("haystack_integrations.components.rankers.huggingface_api.ranker.request_with_retry" )
173- def test_run_with_custom_top_k (self , mock_request , del_hf_env_vars ):
173+ def test_run_with_custom_top_k (self , mock_request , del_hf_env_vars_if_empty ):
174174 """Test run method with custom top_k parameter"""
175175 # Setup mock response with 5 documents
176176 mock_response = MagicMock (spec = httpx .Response )
@@ -207,7 +207,7 @@ def test_run_with_custom_top_k(self, mock_request, del_hf_env_vars):
207207 assert result ["documents" ][1 ].content == "Document 3"
208208
209209 @patch ("haystack_integrations.components.rankers.huggingface_api.ranker.request_with_retry" )
210- def test_run_deduplicates_documents (self , mock_request , del_hf_env_vars ):
210+ def test_run_deduplicates_documents (self , mock_request , del_hf_env_vars_if_empty ):
211211 """Test that duplicate documents are removed before sending to the API."""
212212 mock_response = MagicMock (spec = httpx .Response )
213213 mock_response .json .return_value = [{"index" : 1 , "score" : 0.9 }, {"index" : 0 , "score" : 0.2 }]
@@ -228,7 +228,7 @@ def test_run_deduplicates_documents(self, mock_request, del_hf_env_vars):
228228 url = "https://api.my-tei-service.com/rerank" ,
229229 json = {"query" : "test query" , "texts" : ["keep me" , "unique" ], "raw_scores" : False },
230230 timeout = 30 ,
231- headers = {},
231+ headers = {"Authorization" : f"Bearer { ranker . token . resolve_value () } " } if ranker . token . resolve_value () else { },
232232 attempts = 3 ,
233233 status_codes_to_retry = None ,
234234 )
@@ -237,7 +237,7 @@ def test_run_deduplicates_documents(self, mock_request, del_hf_env_vars):
237237 assert result ["documents" ][1 ].content == "keep me"
238238
239239 @patch ("haystack_integrations.components.rankers.huggingface_api.ranker.request_with_retry" )
240- def test_error_handling (self , mock_request , del_hf_env_vars ):
240+ def test_error_handling (self , mock_request , del_hf_env_vars_if_empty ):
241241 """Test error handling in the ranker"""
242242 # Setup mock response with error
243243 mock_response = MagicMock (spec = httpx .Response )
@@ -261,7 +261,7 @@ def test_error_handling(self, mock_request, del_hf_env_vars):
261261
262262 @pytest .mark .asyncio
263263 @patch ("haystack_integrations.components.rankers.huggingface_api.ranker.async_request_with_retry" )
264- async def test_run_async_with_mock (self , mock_request , del_hf_env_vars ):
264+ async def test_run_async_with_mock (self , mock_request , del_hf_env_vars_if_empty ):
265265 """Test run_async method with mocked API response"""
266266 # Setup mock response
267267 mock_response = MagicMock (spec = httpx .Response )
@@ -310,7 +310,7 @@ async def test_run_async_with_mock(self, mock_request, del_hf_env_vars):
310310
311311 @pytest .mark .asyncio
312312 @patch ("haystack_integrations.components.rankers.huggingface_api.ranker.async_request_with_retry" )
313- async def test_run_async_deduplicates_documents (self , mock_request , del_hf_env_vars ):
313+ async def test_run_async_deduplicates_documents (self , mock_request , del_hf_env_vars_if_empty ):
314314 """Test that duplicate documents are removed before sending to the API."""
315315 mock_response = MagicMock (spec = httpx .Response )
316316 mock_response .json .return_value = [{"index" : 1 , "score" : 0.9 }, {"index" : 0 , "score" : 0.2 }]
@@ -331,7 +331,7 @@ async def test_run_async_deduplicates_documents(self, mock_request, del_hf_env_v
331331 url = "https://api.my-tei-service.com/rerank" ,
332332 json = {"query" : "test query" , "texts" : ["keep me" , "unique" ], "raw_scores" : False },
333333 timeout = 30 ,
334- headers = {},
334+ headers = {"Authorization" : f"Bearer { ranker . token . resolve_value () } " } if ranker . token . resolve_value () else { },
335335 attempts = 3 ,
336336 status_codes_to_retry = None ,
337337 )
@@ -341,7 +341,7 @@ async def test_run_async_deduplicates_documents(self, mock_request, del_hf_env_v
341341
342342 @pytest .mark .asyncio
343343 @patch ("haystack_integrations.components.rankers.huggingface_api.ranker.async_request_with_retry" )
344- async def test_run_async_empty_documents (self , mock_request , del_hf_env_vars ):
344+ async def test_run_async_empty_documents (self , mock_request , del_hf_env_vars_if_empty ):
345345 """Test run_async with empty documents list"""
346346 ranker = HuggingFaceTEIRanker (url = "https://api.my-tei-service.com" )
347347 result = await ranker .run_async (query = "test query" , documents = [])
0 commit comments