diff --git a/src/app_controller.py b/src/app_controller.py index e7b7bbf..1fed016 100644 --- a/src/app_controller.py +++ b/src/app_controller.py @@ -1983,9 +1983,11 @@ class AppController: if self.current_model not in models_list and models_list: self.current_model = models_list[0] ai_client.set_provider(self._current_provider, self.current_model) - self.ai_status = f"models loaded: {len(models_list)}" + if self.ai_status == "fetching models...": + self.ai_status = f"models loaded: {len(models_list)}" except Exception as e: - self.ai_status = f"model fetch error: {e}" + if self.ai_status == "fetching models...": + self.ai_status = f"model fetch error: {e}" self.models_thread = threading.Thread(target=do_fetch, daemon=True) self.models_thread.start() diff --git a/tests/test_rag_engine.py b/tests/test_rag_engine.py index 34f28f7..04797ca 100644 --- a/tests/test_rag_engine.py +++ b/tests/test_rag_engine.py @@ -19,23 +19,26 @@ def test_rag_engine_init_mock(mock_rag_config): assert engine.collection == "mock" @patch('src.rag_engine.LocalEmbeddingProvider.embed') -@patch('src.rag_engine.chromadb.PersistentClient') -def test_rag_engine_chroma(mock_chroma, mock_embed): +@patch('src.rag_engine._get_chromadb') +def test_rag_engine_chroma(mock_get_chroma, mock_embed): + mock_chroma = MagicMock() + mock_settings = MagicMock() + mock_get_chroma.return_value = (mock_chroma, mock_settings) + mock_embed.return_value = [[0.1, 0.2, 0.3]] - mock_collection = MagicMock() mock_client = MagicMock() mock_client.get_or_create_collection.return_value = mock_collection - mock_chroma.return_value = mock_client - + mock_chroma.PersistentClient.return_value = mock_client + vs_config = models.VectorStoreConfig(provider='chroma', collection_name='test') config = models.RAGConfig(enabled=True, vector_store=vs_config, embedding_provider='local') - + with patch('src.rag_engine._get_sentence_transformers') as mock_st: mock_st.return_value = MagicMock() engine = RAGEngine(config) assert engine.collection == mock_collection - + engine.add_documents(["doc1"], ["hello world"]) mock_collection.upsert.assert_called_once() diff --git a/tests/test_rag_visual_sim.py b/tests/test_rag_visual_sim.py index f46e3df..3d780ab 100644 --- a/tests/test_rag_visual_sim.py +++ b/tests/test_rag_visual_sim.py @@ -29,7 +29,7 @@ def test_rag_full_lifecycle_sim(live_gui): # 3. Verify initial status status = client.get_value('rag_status') - assert status in ['idle', 'ready'], f"Unexpected initial status: {status}" + assert status in ['idle', 'ready', 'initializing...'], f"Unexpected initial status: {status}" # 4. Trigger Rebuild Index print("[SIM] Triggering index rebuild...")