From dfc1d452bb13e49eeb66aade1ea4223c28daa444 Mon Sep 17 00:00:00 2001 From: ZanSara Date: Fri, 17 Nov 2023 13:46:23 +0000 Subject: [PATCH] feat: upgrade canals to 0.10.1 (#6309) * upgrade canals * reno * trigger preview e2e * bump canals * fix decorator * fix test * test factory * tests inmemory * tests writer * test audio * tests builders * tests caching * tests embedders * tests converters * tests generators * tests rankers * tests retrievers * fix pipeline and telemetry tests * remove trigger --- .../pipelines/test_extractive_qa_pipeline.py | 1 - haystack/preview/document_stores/decorator.py | 9 +++--- pyproject.toml | 2 +- .../notes/canals-0.10.0-bfa4020a8cf207c4.yaml | 2 ++ .../components/audio/test_whisper_local.py | 4 +-- .../components/audio/test_whisper_remote.py | 10 +++---- .../builders/test_prompt_builder.py | 2 +- .../caching/test_url_cache_checker.py | 30 +++++++++++++------ .../test_openai_document_embedder.py | 4 +-- .../embedders/test_openai_text_embedder.py | 4 +-- ...sentence_transformers_document_embedder.py | 4 +-- ...est_sentence_transformers_text_embedder.py | 6 ++-- .../test_azure_ocr_doc_converter.py | 2 +- .../components/generators/chat/test_openai.py | 10 +++---- .../test_hugging_face_local_generator.py | 4 +-- .../components/generators/test_openai.py | 10 +++---- .../components/rankers/test_metafield.py | 4 +-- .../rankers/test_transformers_similarity.py | 4 +-- .../components/readers/test_extractive.py | 4 +-- .../test_in_memory_bm25_retriever.py | 10 +++---- .../test_in_memory_embedding_retriever.py | 28 ++++++++++------- .../components/websearch/test_serperdev.py | 2 +- .../writers/test_document_writer.py | 21 +++++++++---- .../preview/document_stores/test_in_memory.py | 6 ++-- .../test_files/yaml/test_pipeline.yaml | 4 +-- test/preview/test_telemetry.py | 4 +-- test/preview/testing/test_factory.py | 6 ++-- 27 files changed, 113 insertions(+), 84 deletions(-) create mode 100644 releasenotes/notes/canals-0.10.0-bfa4020a8cf207c4.yaml diff --git a/e2e/preview/pipelines/test_extractive_qa_pipeline.py b/e2e/preview/pipelines/test_extractive_qa_pipeline.py index 80dd0573b..5af133dd4 100644 --- a/e2e/preview/pipelines/test_extractive_qa_pipeline.py +++ b/e2e/preview/pipelines/test_extractive_qa_pipeline.py @@ -64,5 +64,4 @@ def test_extractive_qa_pipeline(tmp_path): assert hasattr(answer, "document") # the answer is extracted from the correct document if answer.document is not None: - assert answer.document.content == doc.content assert answer.document.id == doc.id diff --git a/haystack/preview/document_stores/decorator.py b/haystack/preview/document_stores/decorator.py index 01e78a42b..c82ccf91d 100644 --- a/haystack/preview/document_stores/decorator.py +++ b/haystack/preview/document_stores/decorator.py @@ -15,15 +15,16 @@ class _DocumentStore: def _decorate(self, cls): cls.__haystack_document_store__ = True - if cls.__name__ in self.registry: + classname = f"{cls.__module__}.{cls.__name__}" + if classname in self.registry: logger.error( "DocumentStore %s is already registered. Previous imported from '%s', new imported from '%s'", - cls.__name__, - self.registry[cls.__name__], + classname, + self.registry[classname], cls, ) - self.registry[cls.__name__] = cls + self.registry[classname] = cls logger.debug("Registered DocumentStore %s", cls) return cls diff --git a/pyproject.toml b/pyproject.toml index e239da090..3d0ba57a8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -86,7 +86,7 @@ dependencies = [ [project.optional-dependencies] preview = [ - "canals==0.9.0", + "canals==0.10.1", "requests", "pandas", "rank_bm25", diff --git a/releasenotes/notes/canals-0.10.0-bfa4020a8cf207c4.yaml b/releasenotes/notes/canals-0.10.0-bfa4020a8cf207c4.yaml new file mode 100644 index 000000000..34ea124b3 --- /dev/null +++ b/releasenotes/notes/canals-0.10.0-bfa4020a8cf207c4.yaml @@ -0,0 +1,2 @@ +preview: + - Upgrade Canals to 0.10.0 diff --git a/test/preview/components/audio/test_whisper_local.py b/test/preview/components/audio/test_whisper_local.py index d9f8efd46..df23b1201 100644 --- a/test/preview/components/audio/test_whisper_local.py +++ b/test/preview/components/audio/test_whisper_local.py @@ -32,7 +32,7 @@ class TestLocalWhisperTranscriber: transcriber = LocalWhisperTranscriber() data = transcriber.to_dict() assert data == { - "type": "LocalWhisperTranscriber", + "type": "haystack.preview.components.audio.whisper_local.LocalWhisperTranscriber", "init_parameters": {"model_name_or_path": "large", "device": "cpu", "whisper_params": {}}, } @@ -45,7 +45,7 @@ class TestLocalWhisperTranscriber: ) data = transcriber.to_dict() assert data == { - "type": "LocalWhisperTranscriber", + "type": "haystack.preview.components.audio.whisper_local.LocalWhisperTranscriber", "init_parameters": { "model_name_or_path": "tiny", "device": "cuda", diff --git a/test/preview/components/audio/test_whisper_remote.py b/test/preview/components/audio/test_whisper_remote.py index 5321386f9..e703a2724 100644 --- a/test/preview/components/audio/test_whisper_remote.py +++ b/test/preview/components/audio/test_whisper_remote.py @@ -80,7 +80,7 @@ class TestRemoteWhisperTranscriber: transcriber = RemoteWhisperTranscriber(api_key="test_api_key") data = transcriber.to_dict() assert data == { - "type": "RemoteWhisperTranscriber", + "type": "haystack.preview.components.audio.whisper_remote.RemoteWhisperTranscriber", "init_parameters": { "model_name": "whisper-1", "api_base_url": "https://api.openai.com/v1", @@ -103,7 +103,7 @@ class TestRemoteWhisperTranscriber: ) data = transcriber.to_dict() assert data == { - "type": "RemoteWhisperTranscriber", + "type": "haystack.preview.components.audio.whisper_remote.RemoteWhisperTranscriber", "init_parameters": { "model_name": "whisper-1", "organization": "test-org", @@ -119,7 +119,7 @@ class TestRemoteWhisperTranscriber: monkeypatch.setenv("OPENAI_API_KEY", "test_api_key") data = { - "type": "RemoteWhisperTranscriber", + "type": "haystack.preview.components.audio.whisper_remote.RemoteWhisperTranscriber", "init_parameters": { "model_name": "whisper-1", "api_base_url": "https://api.openai.com/v1", @@ -140,7 +140,7 @@ class TestRemoteWhisperTranscriber: monkeypatch.setenv("OPENAI_API_KEY", "test_api_key") data = { - "type": "RemoteWhisperTranscriber", + "type": "haystack.preview.components.audio.whisper_remote.RemoteWhisperTranscriber", "init_parameters": { "model_name": "whisper-1", "organization": "test-org", @@ -169,7 +169,7 @@ class TestRemoteWhisperTranscriber: monkeypatch.delenv("OPENAI_API_KEY", raising=False) data = { - "type": "RemoteWhisperTranscriber", + "type": "haystack.preview.components.audio.whisper_remote.RemoteWhisperTranscriber", "init_parameters": { "model_name": "whisper-1", "api_base_url": "https://api.openai.com/v1", diff --git a/test/preview/components/builders/test_prompt_builder.py b/test/preview/components/builders/test_prompt_builder.py index a61192e76..188408fdd 100644 --- a/test/preview/components/builders/test_prompt_builder.py +++ b/test/preview/components/builders/test_prompt_builder.py @@ -15,7 +15,7 @@ def test_to_dict(): builder = PromptBuilder(template="This is a {{ variable }}") res = builder.to_dict() assert res == { - "type": "PromptBuilder", + "type": "haystack.preview.components.builders.prompt_builder.PromptBuilder", "init_parameters": {"template": "This is a {{ variable }}", "template_variables": None}, } diff --git a/test/preview/components/caching/test_url_cache_checker.py b/test/preview/components/caching/test_url_cache_checker.py index 3188656a2..1a9487f04 100644 --- a/test/preview/components/caching/test_url_cache_checker.py +++ b/test/preview/components/caching/test_url_cache_checker.py @@ -13,9 +13,12 @@ class TestUrlCacheChecker: component = UrlCacheChecker(document_store=mocked_docstore_class()) data = component.to_dict() assert data == { - "type": "UrlCacheChecker", + "type": "haystack.preview.components.caching.url_cache_checker.UrlCacheChecker", "init_parameters": { - "document_store": {"type": "MockedDocumentStore", "init_parameters": {}}, + "document_store": { + "type": "haystack.preview.testing.factory.MockedDocumentStore", + "init_parameters": {}, + }, "url_field": "url", }, } @@ -26,9 +29,12 @@ class TestUrlCacheChecker: component = UrlCacheChecker(document_store=mocked_docstore_class(), url_field="my_url_field") data = component.to_dict() assert data == { - "type": "UrlCacheChecker", + "type": "haystack.preview.components.caching.url_cache_checker.UrlCacheChecker", "init_parameters": { - "document_store": {"type": "MockedDocumentStore", "init_parameters": {}}, + "document_store": { + "type": "haystack.preview.testing.factory.MockedDocumentStore", + "init_parameters": {}, + }, "url_field": "my_url_field", }, } @@ -37,9 +43,12 @@ class TestUrlCacheChecker: def test_from_dict(self): mocked_docstore_class = document_store_class("MockedDocumentStore") data = { - "type": "UrlCacheChecker", + "type": "haystack.preview.components.caching.url_cache_checker.UrlCacheChecker", "init_parameters": { - "document_store": {"type": "MockedDocumentStore", "init_parameters": {}}, + "document_store": { + "type": "haystack.preview.testing.factory.MockedDocumentStore", + "init_parameters": {}, + }, "url_field": "my_url_field", }, } @@ -49,20 +58,23 @@ class TestUrlCacheChecker: @pytest.mark.unit def test_from_dict_without_docstore(self): - data = {"type": "UrlCacheChecker", "init_parameters": {}} + data = {"type": "haystack.preview.components.caching.url_cache_checker.UrlCacheChecker", "init_parameters": {}} with pytest.raises(DeserializationError, match="Missing 'document_store' in serialization data"): UrlCacheChecker.from_dict(data) @pytest.mark.unit def test_from_dict_without_docstore_type(self): - data = {"type": "UrlCacheChecker", "init_parameters": {"document_store": {"init_parameters": {}}}} + data = { + "type": "haystack.preview.components.caching.url_cache_checker.UrlCacheChecker", + "init_parameters": {"document_store": {"init_parameters": {}}}, + } with pytest.raises(DeserializationError, match="Missing 'type' in document store's serialization data"): UrlCacheChecker.from_dict(data) @pytest.mark.unit def test_from_dict_nonexisting_docstore(self): data = { - "type": "UrlCacheChecker", + "type": "haystack.preview.components.caching.url_cache_checker.UrlCacheChecker", "init_parameters": {"document_store": {"type": "NonexistingDocumentStore", "init_parameters": {}}}, } with pytest.raises(DeserializationError, match="DocumentStore of type 'NonexistingDocumentStore' not found."): diff --git a/test/preview/components/embedders/test_openai_document_embedder.py b/test/preview/components/embedders/test_openai_document_embedder.py index a4c75a187..954846c48 100644 --- a/test/preview/components/embedders/test_openai_document_embedder.py +++ b/test/preview/components/embedders/test_openai_document_embedder.py @@ -79,7 +79,7 @@ class TestOpenAIDocumentEmbedder: component = OpenAIDocumentEmbedder(api_key="fake-api-key") data = component.to_dict() assert data == { - "type": "OpenAIDocumentEmbedder", + "type": "haystack.preview.components.embedders.openai_document_embedder.OpenAIDocumentEmbedder", "init_parameters": { "model_name": "text-embedding-ada-002", "organization": None, @@ -107,7 +107,7 @@ class TestOpenAIDocumentEmbedder: ) data = component.to_dict() assert data == { - "type": "OpenAIDocumentEmbedder", + "type": "haystack.preview.components.embedders.openai_document_embedder.OpenAIDocumentEmbedder", "init_parameters": { "model_name": "model", "organization": "my-org", diff --git a/test/preview/components/embedders/test_openai_text_embedder.py b/test/preview/components/embedders/test_openai_text_embedder.py index 5894a728f..50be49ac5 100644 --- a/test/preview/components/embedders/test_openai_text_embedder.py +++ b/test/preview/components/embedders/test_openai_text_embedder.py @@ -59,7 +59,7 @@ class TestOpenAITextEmbedder: component = OpenAITextEmbedder(api_key="fake-api-key") data = component.to_dict() assert data == { - "type": "OpenAITextEmbedder", + "type": "haystack.preview.components.embedders.openai_text_embedder.OpenAITextEmbedder", "init_parameters": { "model_name": "text-embedding-ada-002", "organization": None, @@ -79,7 +79,7 @@ class TestOpenAITextEmbedder: ) data = component.to_dict() assert data == { - "type": "OpenAITextEmbedder", + "type": "haystack.preview.components.embedders.openai_text_embedder.OpenAITextEmbedder", "init_parameters": { "model_name": "model", "organization": "fake-organization", diff --git a/test/preview/components/embedders/test_sentence_transformers_document_embedder.py b/test/preview/components/embedders/test_sentence_transformers_document_embedder.py index ea09b47f9..2f5e5e667 100644 --- a/test/preview/components/embedders/test_sentence_transformers_document_embedder.py +++ b/test/preview/components/embedders/test_sentence_transformers_document_embedder.py @@ -53,7 +53,7 @@ class TestSentenceTransformersDocumentEmbedder: component = SentenceTransformersDocumentEmbedder(model_name_or_path="model") data = component.to_dict() assert data == { - "type": "SentenceTransformersDocumentEmbedder", + "type": "haystack.preview.components.embedders.sentence_transformers_document_embedder.SentenceTransformersDocumentEmbedder", "init_parameters": { "model_name_or_path": "model", "device": "cpu", @@ -85,7 +85,7 @@ class TestSentenceTransformersDocumentEmbedder: data = component.to_dict() assert data == { - "type": "SentenceTransformersDocumentEmbedder", + "type": "haystack.preview.components.embedders.sentence_transformers_document_embedder.SentenceTransformersDocumentEmbedder", "init_parameters": { "model_name_or_path": "model", "device": "cuda", diff --git a/test/preview/components/embedders/test_sentence_transformers_text_embedder.py b/test/preview/components/embedders/test_sentence_transformers_text_embedder.py index 7c21e3f53..d93e576ac 100644 --- a/test/preview/components/embedders/test_sentence_transformers_text_embedder.py +++ b/test/preview/components/embedders/test_sentence_transformers_text_embedder.py @@ -45,7 +45,7 @@ class TestSentenceTransformersTextEmbedder: component = SentenceTransformersTextEmbedder(model_name_or_path="model") data = component.to_dict() assert data == { - "type": "SentenceTransformersTextEmbedder", + "type": "haystack.preview.components.embedders.sentence_transformers_text_embedder.SentenceTransformersTextEmbedder", "init_parameters": { "model_name_or_path": "model", "device": "cpu", @@ -72,7 +72,7 @@ class TestSentenceTransformersTextEmbedder: ) data = component.to_dict() assert data == { - "type": "SentenceTransformersTextEmbedder", + "type": "haystack.preview.components.embedders.sentence_transformers_text_embedder.SentenceTransformersTextEmbedder", "init_parameters": { "model_name_or_path": "model", "device": "cuda", @@ -90,7 +90,7 @@ class TestSentenceTransformersTextEmbedder: component = SentenceTransformersTextEmbedder(model_name_or_path="model", token="awesome-token") data = component.to_dict() assert data == { - "type": "SentenceTransformersTextEmbedder", + "type": "haystack.preview.components.embedders.sentence_transformers_text_embedder.SentenceTransformersTextEmbedder", "init_parameters": { "model_name_or_path": "model", "device": "cpu", diff --git a/test/preview/components/file_converters/test_azure_ocr_doc_converter.py b/test/preview/components/file_converters/test_azure_ocr_doc_converter.py index 8d2061ab7..07e673701 100644 --- a/test/preview/components/file_converters/test_azure_ocr_doc_converter.py +++ b/test/preview/components/file_converters/test_azure_ocr_doc_converter.py @@ -18,7 +18,7 @@ class TestAzureOCRDocumentConverter: component = AzureOCRDocumentConverter(endpoint="test_endpoint", api_key="test_credential_key") data = component.to_dict() assert data == { - "type": "AzureOCRDocumentConverter", + "type": "haystack.preview.components.file_converters.azure.AzureOCRDocumentConverter", "init_parameters": {"endpoint": "test_endpoint", "model_id": "prebuilt-read"}, } diff --git a/test/preview/components/generators/chat/test_openai.py b/test/preview/components/generators/chat/test_openai.py index 3f034d97d..b0805eb6a 100644 --- a/test/preview/components/generators/chat/test_openai.py +++ b/test/preview/components/generators/chat/test_openai.py @@ -105,7 +105,7 @@ class TestGPTChatGenerator: component = GPTChatGenerator(api_key="test-api-key") data = component.to_dict() assert data == { - "type": "GPTChatGenerator", + "type": "haystack.preview.components.generators.chat.openai.GPTChatGenerator", "init_parameters": { "model_name": "gpt-3.5-turbo", "streaming_callback": None, @@ -125,7 +125,7 @@ class TestGPTChatGenerator: ) data = component.to_dict() assert data == { - "type": "GPTChatGenerator", + "type": "haystack.preview.components.generators.chat.openai.GPTChatGenerator", "init_parameters": { "model_name": "gpt-4", "max_tokens": 10, @@ -147,7 +147,7 @@ class TestGPTChatGenerator: ) data = component.to_dict() assert data == { - "type": "GPTChatGenerator", + "type": "haystack.preview.components.generators.chat.openai.GPTChatGenerator", "init_parameters": { "model_name": "gpt-4", "max_tokens": 10, @@ -161,7 +161,7 @@ class TestGPTChatGenerator: def test_from_dict(self, monkeypatch): monkeypatch.setenv("OPENAI_API_KEY", "fake-api-key") data = { - "type": "GPTChatGenerator", + "type": "haystack.preview.components.generators.chat.openai.GPTChatGenerator", "init_parameters": { "model_name": "gpt-4", "max_tokens": 10, @@ -181,7 +181,7 @@ class TestGPTChatGenerator: openai.api_key = None monkeypatch.delenv("OPENAI_API_KEY", raising=False) data = { - "type": "GPTChatGenerator", + "type": "haystack.preview.components.generators.chat.openai.GPTChatGenerator", "init_parameters": { "model_name": "gpt-4", "max_tokens": 10, diff --git a/test/preview/components/generators/test_hugging_face_local_generator.py b/test/preview/components/generators/test_hugging_face_local_generator.py index cfc88dbd7..0cffdd228 100644 --- a/test/preview/components/generators/test_hugging_face_local_generator.py +++ b/test/preview/components/generators/test_hugging_face_local_generator.py @@ -145,7 +145,7 @@ class TestHuggingFaceLocalGenerator: data = component.to_dict() assert data == { - "type": "HuggingFaceLocalGenerator", + "type": "haystack.preview.components.generators.hugging_face_local.HuggingFaceLocalGenerator", "init_parameters": { "pipeline_kwargs": {"model": "google/flan-t5-base", "task": "text2text-generation", "token": None}, "generation_kwargs": {}, @@ -166,7 +166,7 @@ class TestHuggingFaceLocalGenerator: data = component.to_dict() assert data == { - "type": "HuggingFaceLocalGenerator", + "type": "haystack.preview.components.generators.hugging_face_local.HuggingFaceLocalGenerator", "init_parameters": { "pipeline_kwargs": { "model": "gpt2", diff --git a/test/preview/components/generators/test_openai.py b/test/preview/components/generators/test_openai.py index 8aea97d9d..39177a198 100644 --- a/test/preview/components/generators/test_openai.py +++ b/test/preview/components/generators/test_openai.py @@ -98,7 +98,7 @@ class TestGPTGenerator: component = GPTGenerator(api_key="test-api-key") data = component.to_dict() assert data == { - "type": "GPTGenerator", + "type": "haystack.preview.components.generators.openai.GPTGenerator", "init_parameters": { "model_name": "gpt-3.5-turbo", "streaming_callback": None, @@ -119,7 +119,7 @@ class TestGPTGenerator: ) data = component.to_dict() assert data == { - "type": "GPTGenerator", + "type": "haystack.preview.components.generators.openai.GPTGenerator", "init_parameters": { "model_name": "gpt-4", "max_tokens": 10, @@ -142,7 +142,7 @@ class TestGPTGenerator: ) data = component.to_dict() assert data == { - "type": "GPTGenerator", + "type": "haystack.preview.components.generators.openai.GPTGenerator", "init_parameters": { "model_name": "gpt-4", "max_tokens": 10, @@ -157,7 +157,7 @@ class TestGPTGenerator: def test_from_dict(self, monkeypatch): monkeypatch.setenv("OPENAI_API_KEY", "fake-api-key") data = { - "type": "GPTGenerator", + "type": "haystack.preview.components.generators.openai.GPTGenerator", "init_parameters": { "model_name": "gpt-4", "max_tokens": 10, @@ -178,7 +178,7 @@ class TestGPTGenerator: openai.api_key = None monkeypatch.delenv("OPENAI_API_KEY", raising=False) data = { - "type": "GPTGenerator", + "type": "haystack.preview.components.generators.openai.GPTGenerator", "init_parameters": { "model_name": "gpt-4", "max_tokens": 10, diff --git a/test/preview/components/rankers/test_metafield.py b/test/preview/components/rankers/test_metafield.py index 878b17464..363adb2a4 100644 --- a/test/preview/components/rankers/test_metafield.py +++ b/test/preview/components/rankers/test_metafield.py @@ -10,7 +10,7 @@ class TestMetaFieldRanker: component = MetaFieldRanker(metadata_field="rating") data = component.to_dict() assert data == { - "type": "MetaFieldRanker", + "type": "haystack.preview.components.rankers.meta_field.MetaFieldRanker", "init_parameters": { "metadata_field": "rating", "weight": 1.0, @@ -24,7 +24,7 @@ class TestMetaFieldRanker: component = MetaFieldRanker(metadata_field="rating", weight=0.5, top_k=5, ranking_mode="linear_score") data = component.to_dict() assert data == { - "type": "MetaFieldRanker", + "type": "haystack.preview.components.rankers.meta_field.MetaFieldRanker", "init_parameters": {"metadata_field": "rating", "weight": 0.5, "top_k": 5, "ranking_mode": "linear_score"}, } diff --git a/test/preview/components/rankers/test_transformers_similarity.py b/test/preview/components/rankers/test_transformers_similarity.py index b225abf24..95c1d1aea 100644 --- a/test/preview/components/rankers/test_transformers_similarity.py +++ b/test/preview/components/rankers/test_transformers_similarity.py @@ -10,7 +10,7 @@ class TestSimilarityRanker: component = TransformersSimilarityRanker() data = component.to_dict() assert data == { - "type": "TransformersSimilarityRanker", + "type": "haystack.preview.components.rankers.transformers_similarity.TransformersSimilarityRanker", "init_parameters": { "device": "cpu", "top_k": 10, @@ -26,7 +26,7 @@ class TestSimilarityRanker: ) data = component.to_dict() assert data == { - "type": "TransformersSimilarityRanker", + "type": "haystack.preview.components.rankers.transformers_similarity.TransformersSimilarityRanker", "init_parameters": { "device": "cuda", "model_name_or_path": "my_model", diff --git a/test/preview/components/readers/test_extractive.py b/test/preview/components/readers/test_extractive.py index 060a0e493..2c6ea04df 100644 --- a/test/preview/components/readers/test_extractive.py +++ b/test/preview/components/readers/test_extractive.py @@ -93,7 +93,7 @@ def test_to_dict(): data = component.to_dict() assert data == { - "type": "ExtractiveReader", + "type": "haystack.preview.components.readers.extractive.ExtractiveReader", "init_parameters": { "model_name_or_path": "my-model", "device": None, @@ -117,7 +117,7 @@ def test_to_dict_empty_model_kwargs(): data = component.to_dict() assert data == { - "type": "ExtractiveReader", + "type": "haystack.preview.components.readers.extractive.ExtractiveReader", "init_parameters": { "model_name_or_path": "my-model", "device": None, diff --git a/test/preview/components/retrievers/test_in_memory_bm25_retriever.py b/test/preview/components/retrievers/test_in_memory_bm25_retriever.py index 2c2092574..2a84f3bac 100644 --- a/test/preview/components/retrievers/test_in_memory_bm25_retriever.py +++ b/test/preview/components/retrievers/test_in_memory_bm25_retriever.py @@ -51,7 +51,7 @@ class TestMemoryBM25Retriever: data = component.to_dict() assert data == { - "type": "InMemoryBM25Retriever", + "type": "haystack.preview.components.retrievers.in_memory_bm25_retriever.InMemoryBM25Retriever", "init_parameters": { "document_store": {"type": "MyFakeStore", "init_parameters": {}}, "filters": None, @@ -70,7 +70,7 @@ class TestMemoryBM25Retriever: ) data = component.to_dict() assert data == { - "type": "InMemoryBM25Retriever", + "type": "haystack.preview.components.retrievers.in_memory_bm25_retriever.InMemoryBM25Retriever", "init_parameters": { "document_store": {"type": "MyFakeStore", "init_parameters": {}}, "filters": {"name": "test.txt"}, @@ -83,9 +83,9 @@ class TestMemoryBM25Retriever: def test_from_dict(self): document_store_class("MyFakeStore", bases=(InMemoryDocumentStore,)) data = { - "type": "InMemoryBM25Retriever", + "type": "haystack.preview.components.retrievers.in_memory_bm25_retriever.InMemoryBM25Retriever", "init_parameters": { - "document_store": {"type": "MyFakeStore", "init_parameters": {}}, + "document_store": {"type": "haystack.preview.testing.factory.MyFakeStore", "init_parameters": {}}, "filters": {"name": "test.txt"}, "top_k": 5, }, @@ -111,7 +111,7 @@ class TestMemoryBM25Retriever: @pytest.mark.unit def test_from_dict_nonexisting_docstore(self): data = { - "type": "InMemoryBM25Retriever", + "type": "haystack.preview.components.retrievers.in_memory_bm25_retriever.InMemoryBM25Retriever", "init_parameters": {"document_store": {"type": "NonexistingDocstore", "init_parameters": {}}}, } with pytest.raises(DeserializationError, match="DocumentStore type 'NonexistingDocstore' not found"): diff --git a/test/preview/components/retrievers/test_in_memory_embedding_retriever.py b/test/preview/components/retrievers/test_in_memory_embedding_retriever.py index acbd6aced..6c03e6d62 100644 --- a/test/preview/components/retrievers/test_in_memory_embedding_retriever.py +++ b/test/preview/components/retrievers/test_in_memory_embedding_retriever.py @@ -36,14 +36,14 @@ class TestMemoryEmbeddingRetriever: def test_to_dict(self): MyFakeStore = document_store_class("MyFakeStore", bases=(InMemoryDocumentStore,)) document_store = MyFakeStore() - document_store.to_dict = lambda: {"type": "MyFakeStore", "init_parameters": {}} + document_store.to_dict = lambda: {"type": "test_module.MyFakeStore", "init_parameters": {}} component = InMemoryEmbeddingRetriever(document_store=document_store) data = component.to_dict() assert data == { - "type": "InMemoryEmbeddingRetriever", + "type": "haystack.preview.components.retrievers.in_memory_embedding_retriever.InMemoryEmbeddingRetriever", "init_parameters": { - "document_store": {"type": "MyFakeStore", "init_parameters": {}}, + "document_store": {"type": "test_module.MyFakeStore", "init_parameters": {}}, "filters": None, "top_k": 10, "scale_score": False, @@ -55,7 +55,7 @@ class TestMemoryEmbeddingRetriever: def test_to_dict_with_custom_init_parameters(self): MyFakeStore = document_store_class("MyFakeStore", bases=(InMemoryDocumentStore,)) document_store = MyFakeStore() - document_store.to_dict = lambda: {"type": "MyFakeStore", "init_parameters": {}} + document_store.to_dict = lambda: {"type": "test_module.MyFakeStore", "init_parameters": {}} component = InMemoryEmbeddingRetriever( document_store=document_store, filters={"name": "test.txt"}, @@ -65,9 +65,9 @@ class TestMemoryEmbeddingRetriever: ) data = component.to_dict() assert data == { - "type": "InMemoryEmbeddingRetriever", + "type": "haystack.preview.components.retrievers.in_memory_embedding_retriever.InMemoryEmbeddingRetriever", "init_parameters": { - "document_store": {"type": "MyFakeStore", "init_parameters": {}}, + "document_store": {"type": "test_module.MyFakeStore", "init_parameters": {}}, "filters": {"name": "test.txt"}, "top_k": 5, "scale_score": True, @@ -79,9 +79,9 @@ class TestMemoryEmbeddingRetriever: def test_from_dict(self): document_store_class("MyFakeStore", bases=(InMemoryDocumentStore,)) data = { - "type": "InMemoryEmbeddingRetriever", + "type": "haystack.preview.components.retrievers.in_memory_embedding_retriever.InMemoryEmbeddingRetriever", "init_parameters": { - "document_store": {"type": "MyFakeStore", "init_parameters": {}}, + "document_store": {"type": "haystack.preview.testing.factory.MyFakeStore", "init_parameters": {}}, "filters": {"name": "test.txt"}, "top_k": 5, }, @@ -94,20 +94,26 @@ class TestMemoryEmbeddingRetriever: @pytest.mark.unit def test_from_dict_without_docstore(self): - data = {"type": "InMemoryEmbeddingRetriever", "init_parameters": {}} + data = { + "type": "haystack.preview.components.retrievers.in_memory_embedding_retriever.InMemoryEmbeddingRetriever", + "init_parameters": {}, + } with pytest.raises(DeserializationError, match="Missing 'document_store' in serialization data"): InMemoryEmbeddingRetriever.from_dict(data) @pytest.mark.unit def test_from_dict_without_docstore_type(self): - data = {"type": "InMemoryEmbeddingRetriever", "init_parameters": {"document_store": {"init_parameters": {}}}} + data = { + "type": "haystack.preview.components.retrievers.in_memory_embedding_retriever.InMemoryEmbeddingRetriever", + "init_parameters": {"document_store": {"init_parameters": {}}}, + } with pytest.raises(DeserializationError, match="Missing 'type' in document store's serialization data"): InMemoryEmbeddingRetriever.from_dict(data) @pytest.mark.unit def test_from_dict_nonexisting_docstore(self): data = { - "type": "InMemoryEmbeddingRetriever", + "type": "haystack.preview.components.retrievers.in_memory_embedding_retriever.InMemoryEmbeddingRetriever", "init_parameters": {"document_store": {"type": "NonexistingDocstore", "init_parameters": {}}}, } with pytest.raises(DeserializationError, match="DocumentStore type 'NonexistingDocstore' not found"): diff --git a/test/preview/components/websearch/test_serperdev.py b/test/preview/components/websearch/test_serperdev.py index e94b7fd72..48d8619d2 100644 --- a/test/preview/components/websearch/test_serperdev.py +++ b/test/preview/components/websearch/test_serperdev.py @@ -121,7 +121,7 @@ class TestSerperDevSearchAPI: ) data = component.to_dict() assert data == { - "type": "SerperDevWebSearch", + "type": "haystack.preview.components.websearch.serper_dev.SerperDevWebSearch", "init_parameters": {"top_k": 10, "allowed_domains": ["test.com"], "search_params": {"param": "test"}}, } diff --git a/test/preview/components/writers/test_document_writer.py b/test/preview/components/writers/test_document_writer.py index 66931ef0c..b535616c9 100644 --- a/test/preview/components/writers/test_document_writer.py +++ b/test/preview/components/writers/test_document_writer.py @@ -15,9 +15,12 @@ class TestDocumentWriter: component = DocumentWriter(document_store=mocked_docstore_class()) data = component.to_dict() assert data == { - "type": "DocumentWriter", + "type": "haystack.preview.components.writers.document_writer.DocumentWriter", "init_parameters": { - "document_store": {"type": "MockedDocumentStore", "init_parameters": {}}, + "document_store": { + "type": "haystack.preview.testing.factory.MockedDocumentStore", + "init_parameters": {}, + }, "policy": "FAIL", }, } @@ -28,9 +31,12 @@ class TestDocumentWriter: component = DocumentWriter(document_store=mocked_docstore_class(), policy=DuplicatePolicy.SKIP) data = component.to_dict() assert data == { - "type": "DocumentWriter", + "type": "haystack.preview.components.writers.document_writer.DocumentWriter", "init_parameters": { - "document_store": {"type": "MockedDocumentStore", "init_parameters": {}}, + "document_store": { + "type": "haystack.preview.testing.factory.MockedDocumentStore", + "init_parameters": {}, + }, "policy": "SKIP", }, } @@ -39,9 +45,12 @@ class TestDocumentWriter: def test_from_dict(self): mocked_docstore_class = document_store_class("MockedDocumentStore") data = { - "type": "DocumentWriter", + "type": "haystack.preview.components.writers.document_writer.DocumentWriter", "init_parameters": { - "document_store": {"type": "MockedDocumentStore", "init_parameters": {}}, + "document_store": { + "type": "haystack.preview.testing.factory.MockedDocumentStore", + "init_parameters": {}, + }, "policy": "SKIP", }, } diff --git a/test/preview/document_stores/test_in_memory.py b/test/preview/document_stores/test_in_memory.py index 36e486eca..158a3dae5 100644 --- a/test/preview/document_stores/test_in_memory.py +++ b/test/preview/document_stores/test_in_memory.py @@ -25,7 +25,7 @@ class TestMemoryDocumentStore(DocumentStoreBaseTests): # pylint: disable=R0904 store = InMemoryDocumentStore() data = store.to_dict() assert data == { - "type": "InMemoryDocumentStore", + "type": "haystack.preview.document_stores.in_memory.document_store.InMemoryDocumentStore", "init_parameters": { "bm25_tokenization_regex": r"(?u)\b\w\w+\b", "bm25_algorithm": "BM25Okapi", @@ -44,7 +44,7 @@ class TestMemoryDocumentStore(DocumentStoreBaseTests): # pylint: disable=R0904 ) data = store.to_dict() assert data == { - "type": "InMemoryDocumentStore", + "type": "haystack.preview.document_stores.in_memory.document_store.InMemoryDocumentStore", "init_parameters": { "bm25_tokenization_regex": "custom_regex", "bm25_algorithm": "BM25Plus", @@ -57,7 +57,7 @@ class TestMemoryDocumentStore(DocumentStoreBaseTests): # pylint: disable=R0904 @patch("haystack.preview.document_stores.in_memory.document_store.re") def test_from_dict(self, mock_regex): data = { - "type": "InMemoryDocumentStore", + "type": "haystack.preview.document_stores.in_memory.document_store.InMemoryDocumentStore", "init_parameters": { "bm25_tokenization_regex": "custom_regex", "bm25_algorithm": "BM25Plus", diff --git a/test/preview/test_files/yaml/test_pipeline.yaml b/test/preview/test_files/yaml/test_pipeline.yaml index c74d9e457..0690b86f1 100644 --- a/test/preview/test_files/yaml/test_pipeline.yaml +++ b/test/preview/test_files/yaml/test_pipeline.yaml @@ -2,11 +2,11 @@ components: Comp1: init_parameters: an_init_param: null - type: TestComponent + type: test_pipeline.TestComponent Comp2: init_parameters: an_init_param: null - type: TestComponent + type: test_pipeline.TestComponent connections: - receiver: Comp2.input_ sender: Comp1.value diff --git a/test/preview/test_telemetry.py b/test/preview/test_telemetry.py index ec3542625..ba9105eee 100644 --- a/test/preview/test_telemetry.py +++ b/test/preview/test_telemetry.py @@ -30,7 +30,7 @@ def test_pipeline_running(telemetry): { "pipeline_id": str(id(pipe)), "runs": 1, - "components": {"Component": [{"name": "component", "key": "values"}]}, + "components": {"test_telemetry.Component": [{"name": "component", "key": "values"}]}, }, ) @@ -49,6 +49,6 @@ def test_pipeline_running(telemetry): { "pipeline_id": str(id(pipe)), "runs": 3, - "components": {"Component": [{"name": "component", "key": "values"}]}, + "components": {"test_telemetry.Component": [{"name": "component", "key": "values"}]}, }, ) diff --git a/test/preview/testing/test_factory.py b/test/preview/testing/test_factory.py index 80ccf3303..5a7fdc78a 100644 --- a/test/preview/testing/test_factory.py +++ b/test/preview/testing/test_factory.py @@ -13,21 +13,21 @@ def test_document_store_class_default(): assert store.filter_documents() == [] assert store.write_documents([]) is None assert store.delete_documents([]) is None - assert store.to_dict() == {"type": "MyStore", "init_parameters": {}} + assert store.to_dict() == {"type": "haystack.preview.testing.factory.MyStore", "init_parameters": {}} @pytest.mark.unit def test_document_store_from_dict(): MyStore = document_store_class("MyStore") - store = MyStore.from_dict({"type": "MyStore", "init_parameters": {}}) + store = MyStore.from_dict({"type": "haystack.preview.testing.factory.MyStore", "init_parameters": {}}) assert isinstance(store, MyStore) @pytest.mark.unit def test_document_store_class_is_registered(): MyStore = document_store_class("MyStore") - assert document_store.registry["MyStore"] == MyStore + assert document_store.registry["haystack.preview.testing.factory.MyStore"] == MyStore @pytest.mark.unit