1515)
1616
1717
18- @pytest .fixture
19- def skip_vectorizer () -> bool :
20- v = os .getenv ("SKIP_VECTORIZERS" , "False" ).lower () == "true"
21- return v
22-
23-
2418@pytest .fixture (
2519 params = [
2620 HFTextVectorizer ,
@@ -34,10 +28,7 @@ def skip_vectorizer() -> bool:
3428 VoyageAITextVectorizer ,
3529 ]
3630)
37- def vectorizer (request , skip_vectorizer ):
38- if skip_vectorizer :
39- pytest .skip ("Skipping vectorizer instantiation..." )
40-
31+ def vectorizer (request ):
4132 if request .param == HFTextVectorizer :
4233 return request .param ()
4334 elif request .param == OpenAITextVectorizer :
@@ -70,10 +61,7 @@ def embed_many(texts):
7061
7162
7263@pytest .fixture
73- def bedrock_vectorizer (skip_vectorizer ):
74- if skip_vectorizer :
75- pytest .skip ("Skipping Bedrock vectorizer tests..." )
76-
64+ def bedrock_vectorizer ():
7765 return BedrockTextVectorizer (
7866 model = os .getenv ("BEDROCK_MODEL_ID" , "amazon.titan-embed-text-v2:0" )
7967 )
@@ -108,6 +96,7 @@ def embed_many_with_args(self, texts, param=True):
10896 return MyEmbedder
10997
11098
99+ @pytest .mark .requires_api_keys
111100def test_vectorizer_embed (vectorizer ):
112101 text = "This is a test sentence."
113102 if isinstance (vectorizer , CohereTextVectorizer ):
@@ -121,6 +110,7 @@ def test_vectorizer_embed(vectorizer):
121110 assert len (embedding ) == vectorizer .dims
122111
123112
113+ @pytest .mark .requires_api_keys
124114def test_vectorizer_embed_many (vectorizer ):
125115 texts = ["This is the first test sentence." , "This is the second test sentence." ]
126116 if isinstance (vectorizer , CohereTextVectorizer ):
@@ -137,6 +127,7 @@ def test_vectorizer_embed_many(vectorizer):
137127 )
138128
139129
130+ @pytest .mark .requires_api_keys
140131def test_vectorizer_bad_input (vectorizer ):
141132 with pytest .raises (TypeError ):
142133 vectorizer .embed (1 )
@@ -148,6 +139,7 @@ def test_vectorizer_bad_input(vectorizer):
148139 vectorizer .embed_many (42 )
149140
150141
142+ @pytest .mark .requires_api_keys
151143def test_bedrock_bad_credentials ():
152144 with pytest .raises (ValueError ):
153145 BedrockTextVectorizer (
@@ -158,6 +150,7 @@ def test_bedrock_bad_credentials():
158150 )
159151
160152
153+ @pytest .mark .requires_api_keys
161154def test_bedrock_invalid_model (bedrock_vectorizer ):
162155 with pytest .raises (ValueError ):
163156 bedrock = BedrockTextVectorizer (model = "invalid-model" )
@@ -250,64 +243,48 @@ def bad_return_type(text: str) -> str:
250243 )
251244
252245
253- @pytest .mark .parametrize (
254- "vector_class" ,
255- [
256- AzureOpenAITextVectorizer ,
257- BedrockTextVectorizer ,
258- CohereTextVectorizer ,
259- CustomTextVectorizer ,
260- HFTextVectorizer ,
261- MistralAITextVectorizer ,
262- OpenAITextVectorizer ,
263- VertexAITextVectorizer ,
264- VoyageAITextVectorizer ,
265- ],
266- )
267- def test_dtypes (vector_class , skip_vectorizer ):
268- if skip_vectorizer :
269- pytest .skip ("Skipping vectorizer instantiation..." )
270-
271- # test dtype defaults to float32
272- if issubclass (vector_class , CustomTextVectorizer ):
273- vectorizer = vector_class (embed = lambda x , input_type = None : [1.0 , 2.0 , 3.0 ])
274- elif issubclass (vector_class , AzureOpenAITextVectorizer ):
275- vectorizer = vector_class (
276- model = os .getenv ("AZURE_OPENAI_DEPLOYMENT_NAME" , "text-embedding-ada-002" )
277- )
278- else :
279- vectorizer = vector_class ()
280-
281- assert vectorizer .dtype == "float32"
282-
283- # test initializing dtype in constructor
284- for dtype in ["float16" , "float32" , "float64" , "bfloat16" ]:
285- if issubclass (vector_class , CustomTextVectorizer ):
286- vectorizer = vector_class (embed = lambda x : [1.0 , 2.0 , 3.0 ], dtype = dtype )
287- elif issubclass (vector_class , AzureOpenAITextVectorizer ):
288- vectorizer = vector_class (
289- model = os .getenv (
290- "AZURE_OPENAI_DEPLOYMENT_NAME" , "text-embedding-ada-002"
291- ),
292- dtype = dtype ,
293- )
294- else :
295- vectorizer = vector_class (dtype = dtype )
296-
297- assert vectorizer .dtype == dtype
298-
299- # test validation of dtype on init
300- if issubclass (vector_class , CustomTextVectorizer ):
301- pytest .skip ("skipping custom text vectorizer" )
246+ # @pytest.mark.requires_api_keys
247+ # def test_dtypes(vectorizer):
248+ # # # test dtype defaults to float32
249+ # # if issubclass(vectorizer, CustomTextVectorizer):
250+ # # vectorizer = vectorizer(embed=lambda x, input_type=None: [1.0, 2.0, 3.0])
251+ # # elif issubclass(vectorizer, AzureOpenAITextVectorizer):
252+ # # vectorizer = vectorizer(
253+ # # model=os.getenv("AZURE_OPENAI_DEPLOYMENT_NAME", "text-embedding-ada-002")
254+ # # )
255+ # # else:
256+ # # vectorizer = vector_class()
302257
303- with pytest .raises (ValueError ):
304- vectorizer = vector_class (dtype = "float25" )
258+ # assert vectorizer.dtype == "float32"
305259
306- with pytest .raises (ValueError ):
307- vectorizer = vector_class (dtype = 7 )
260+ # # test initializing dtype in constructor
261+ # for dtype in ["float16", "float32", "float64", "bfloat16"]:
262+ # if issubclass(vectorizer, CustomTextVectorizer):
263+ # vectorizer = vectorizer(embed=lambda x: [1.0, 2.0, 3.0], dtype=dtype)
264+ # elif issubclass(vectorizer, AzureOpenAITextVectorizer):
265+ # vectorizer = vectorizer(
266+ # model=os.getenv(
267+ # "AZURE_OPENAI_DEPLOYMENT_NAME", "text-embedding-ada-002"
268+ # ),
269+ # dtype=dtype,
270+ # )
271+ # else:
272+ # vectorizer = vectorizer(dtype=dtype)
308273
309- with pytest .raises (ValueError ):
310- vectorizer = vector_class (dtype = None )
274+ # assert vectorizer.dtype == dtype
275+
276+ # # test validation of dtype on init
277+ # if issubclass(vectorizer, CustomTextVectorizer):
278+ # pytest.skip("skipping custom text vectorizer")
279+
280+ # with pytest.raises(ValueError):
281+ # vectorizer = vectorizer(dtype="float25")
282+
283+ # with pytest.raises(ValueError):
284+ # vectorizer = vectorizer(dtype=7)
285+
286+ # with pytest.raises(ValueError):
287+ # vectorizer = vectorizer(dtype=None)
311288
312289
313290@pytest .fixture (
@@ -319,10 +296,7 @@ def test_dtypes(vector_class, skip_vectorizer):
319296 VoyageAITextVectorizer ,
320297 ]
321298)
322- def avectorizer (request , skip_vectorizer ):
323- if skip_vectorizer :
324- pytest .skip ("Skipping vectorizer instantiation..." )
325-
299+ def avectorizer (request ):
326300 if request .param == CustomTextVectorizer :
327301
328302 def embed_func (text ):
@@ -341,6 +315,7 @@ async def aembed_many_func(texts):
341315 return request .param ()
342316
343317
318+ @pytest .mark .requires_api_keys
344319@pytest .mark .asyncio
345320async def test_vectorizer_aembed (avectorizer ):
346321 text = "This is a test sentence."
@@ -350,6 +325,7 @@ async def test_vectorizer_aembed(avectorizer):
350325 assert len (embedding ) == avectorizer .dims
351326
352327
328+ @pytest .mark .requires_api_keys
353329@pytest .mark .asyncio
354330async def test_vectorizer_aembed_many (avectorizer ):
355331 texts = ["This is the first test sentence." , "This is the second test sentence." ]
@@ -362,6 +338,7 @@ async def test_vectorizer_aembed_many(avectorizer):
362338 )
363339
364340
341+ @pytest .mark .requires_api_keys
365342@pytest .mark .asyncio
366343async def test_avectorizer_bad_input (avectorizer ):
367344 with pytest .raises (TypeError ):
0 commit comments