1919from contextforge_memory .embeddings .sentencetransformers import (
2020 SentenceTransformersProvider ,
2121)
22- from src . contextforge_memory .main import (
22+ from contextforge_memory .main import (
2323 ProviderConfig ,
2424 _select_embeddings_provider ,
2525)
2626
2727
2828def _current_fhb_cls ():
2929 # Import inside function to avoid class identity drift across reloads
30- from src . contextforge_memory .embeddings .base import FallbackHashEmbeddings
30+ from contextforge_memory .embeddings .base import FallbackHashEmbeddings
3131
3232 return FallbackHashEmbeddings
3333
@@ -38,7 +38,7 @@ def _new_fhb(*args, **kwargs):
3838
3939def _current_st_cls ():
4040 # Import inside function to avoid class identity drift across reloads
41- from src . contextforge_memory .embeddings .sentencetransformers import (
41+ from contextforge_memory .embeddings .sentencetransformers import (
4242 SentenceTransformersProvider ,
4343 )
4444
@@ -176,7 +176,11 @@ def test_provider_selection_hash_provider_always_works(self) -> None:
176176 dimension = 32 ,
177177 )
178178 provider = _select_embeddings_provider (config )
179- assert isinstance (provider , _current_fhb_cls ())
179+ # Check class name and module instead of isinstance due to module reloading
180+ assert provider .__class__ .__name__ == "FallbackHashEmbeddings"
181+ assert (
182+ provider .__class__ .__module__ == "contextforge_memory.embeddings.base"
183+ )
180184
181185 def test_provider_selection_default_provider (self ) -> None :
182186 """Test that default provider selection works correctly."""
@@ -190,7 +194,9 @@ def test_provider_selection_default_provider(self) -> None:
190194
191195 config = get_provider_config ()
192196 provider = _select_embeddings_provider (config )
193- assert isinstance (provider , _current_fhb_cls ())
197+ # Check class name and module instead of isinstance due to module reloading
198+ assert provider .__class__ .__name__ == "FallbackHashEmbeddings"
199+ assert provider .__class__ .__module__ == "contextforge_memory.embeddings.base"
194200
195201 def test_provider_selection_invalid_provider_falls_back (self ) -> None :
196202 """Test that invalid provider names fall back to hash provider."""
@@ -200,7 +206,9 @@ def test_provider_selection_invalid_provider_falls_back(self) -> None:
200206 dimension = 32 ,
201207 )
202208 provider = _select_embeddings_provider (config )
203- assert isinstance (provider , _current_fhb_cls ())
209+ # Check class name and module instead of isinstance due to module reloading
210+ assert provider .__class__ .__name__ == "FallbackHashEmbeddings"
211+ assert provider .__class__ .__module__ == "contextforge_memory.embeddings.base"
204212
205213 def test_openai_provider_api_key_validation_non_strict_mode (
206214 self , monkeypatch
@@ -218,7 +226,9 @@ def test_openai_provider_api_key_validation_non_strict_mode(
218226 )
219227 # Without API key, should fall back to hash provider in non-strict mode
220228 provider = _select_embeddings_provider (config )
221- assert isinstance (provider , _current_fhb_cls ())
229+ # Check class name and module instead of isinstance due to module reloading
230+ assert provider .__class__ .__name__ == "FallbackHashEmbeddings"
231+ assert provider .__class__ .__module__ == "contextforge_memory.embeddings.base"
222232
223233 def test_sentence_transformers_model_validation_non_strict_mode (
224234 self ,
@@ -232,7 +242,9 @@ def test_sentence_transformers_model_validation_non_strict_mode(
232242 )
233243 # Should fall back to hash provider when ST fails
234244 provider = _select_embeddings_provider (config )
235- assert isinstance (provider , _current_fhb_cls ())
245+ # Check class name and module instead of isinstance due to module reloading
246+ assert provider .__class__ .__name__ == "FallbackHashEmbeddings"
247+ assert provider .__class__ .__module__ == "contextforge_memory.embeddings.base"
236248
237249 def test_strict_mode_logging_warning (self , caplog , monkeypatch ) -> None :
238250 """Test that strict mode logs appropriate warnings."""
@@ -303,7 +315,11 @@ def test_provider_selection_case_insensitive_openai(self, monkeypatch) -> None:
303315 )
304316 provider = _select_embeddings_provider (config )
305317 # Without API key, should fall back to hash provider
306- assert isinstance (provider , _current_fhb_cls ())
318+ # Check class name and module instead of isinstance due to module reloading
319+ assert provider .__class__ .__name__ == "FallbackHashEmbeddings"
320+ assert (
321+ provider .__class__ .__module__ == "contextforge_memory.embeddings.base"
322+ )
307323
308324 def test_provider_selection_case_insensitive_sentence_transformers (
309325 self ,
@@ -326,9 +342,15 @@ def test_provider_selection_case_insensitive_sentence_transformers(
326342 provider = _select_embeddings_provider (config )
327343 # In test environment, SentenceTransformers may not be available,
328344 # so it falls back to hash provider
329- fhb = _current_fhb_cls ()
330- st_cls = _current_st_cls ()
331- assert isinstance (provider , st_cls | fhb )
345+ # Check class name and module instead of isinstance due to module reloading
346+ assert provider .__class__ .__name__ in (
347+ "FallbackHashEmbeddings" ,
348+ "SentenceTransformersProvider" ,
349+ )
350+ assert provider .__class__ .__module__ in (
351+ "contextforge_memory.embeddings.base" ,
352+ "contextforge_memory.embeddings.sentencetransformers" ,
353+ )
332354
333355 def test_strict_mode_behavior_with_missing_dependencies (self ) -> None :
334356 """Test strict mode behavior when dependencies are missing."""
@@ -339,7 +361,9 @@ def test_strict_mode_behavior_with_missing_dependencies(self) -> None:
339361 dimension = 32 ,
340362 )
341363 provider = _select_embeddings_provider (config )
342- assert isinstance (provider , _current_fhb_cls ())
364+ # Check class name and module instead of isinstance due to module reloading
365+ assert provider .__class__ .__name__ == "FallbackHashEmbeddings"
366+ assert provider .__class__ .__module__ == "contextforge_memory.embeddings.base"
343367
344368 def test_non_strict_mode_behavior_with_missing_dependencies (self ) -> None :
345369 """Test non-strict mode behavior when dependencies are missing."""
@@ -350,4 +374,6 @@ def test_non_strict_mode_behavior_with_missing_dependencies(self) -> None:
350374 dimension = 32 ,
351375 )
352376 provider = _select_embeddings_provider (config )
353- assert isinstance (provider , _current_fhb_cls ())
377+ # Check class name and module instead of isinstance due to module reloading
378+ assert provider .__class__ .__name__ == "FallbackHashEmbeddings"
379+ assert provider .__class__ .__module__ == "contextforge_memory.embeddings.base"
0 commit comments