diff --git a/tests/unit/test_router.py b/tests/unit/test_router.py index ef36e0ab4b4180b3ed5e5746d984691efd2b5150..067e78a9be0f5b17e555ab3512c24eac88d15e86 100644 --- a/tests/unit/test_router.py +++ b/tests/unit/test_router.py @@ -149,6 +149,13 @@ def routes_4(): ] +@pytest.fixture +def route_single_utterance(): + return [ + Route(name="Route 3", utterances=["Hello"]), + ] + + @pytest.fixture def dynamic_routes(): return [ @@ -251,6 +258,39 @@ class TestSemanticRouter: ) assert route_layer.score_threshold == openai_encoder.score_threshold + def test_add_single_utterance( + self, routes, route_single_utterance, openai_encoder, index_cls + ): + index = init_index(index_cls) + route_layer = SemanticRouter( + encoder=openai_encoder, + routes=routes, + index=index, + auto_sync="local", + ) + route_layer.add(routes=[route_single_utterance]) + assert route_layer.score_threshold == openai_encoder.score_threshold + if index_cls is PineconeIndex: + time.sleep(PINECONE_SLEEP) # allow for index to be updated + _ = route_layer("Hello") + assert len(route_layer.index.get_utterances()) == 6 + + def test_init_and_add_single_utterance( + self, route_single_utterance, openai_encoder, index_cls + ): + index = init_index(index_cls) + route_layer = SemanticRouter( + encoder=openai_encoder, + index=index, + auto_sync="local", + ) + if index_cls is PineconeIndex: + time.sleep(PINECONE_SLEEP) # allow for index to be updated + route_layer.add(routes=[route_single_utterance]) + assert route_layer.score_threshold == openai_encoder.score_threshold + _ = route_layer("Hello") + assert len(route_layer.index.get_utterances()) == 1 + def test_delete_index(self, openai_encoder, routes, index_cls): # TODO merge .delete_index() and .delete_all() and get working index = init_index(index_cls)