mirror of
https://github.com/deepset-ai/haystack.git
synced 2025-07-13 20:10:45 +00:00
32 lines
1.6 KiB
Python
32 lines
1.6 KiB
Python
def pytest_addoption(parser):
|
|
parser.addoption(
|
|
"--document_store_type", action="store", default="elasticsearch, faiss, sql, memory, weaviate, pinecone"
|
|
)
|
|
parser.addoption(
|
|
"--mock-dc", action="store_true", default=True, help="Mock HTTP requests to dC while running tests"
|
|
)
|
|
parser.addoption(
|
|
"--mock-pinecone", action="store_true", default=True, help="Mock HTTP requests to Pinecone while running tests"
|
|
)
|
|
|
|
|
|
def pytest_generate_tests(metafunc):
|
|
# Ugly hack to avoid polluting preview tests this with unwanted fixtures
|
|
if "test/preview" in metafunc.module.__file__ or "test\\preview" in metafunc.module.__file__:
|
|
return
|
|
# Get selected docstores from CLI arg
|
|
document_store_type = metafunc.config.option.document_store_type
|
|
selected_doc_stores = [item.strip() for item in document_store_type.split(",")]
|
|
|
|
# parametrize document_store fixture if it's in the test function argument list
|
|
# but does not have an explicit parametrize annotation e.g
|
|
# @pytest.mark.parametrize("document_store", ["memory"], indirect=False)
|
|
found_mark_parametrize_document_store = False
|
|
for marker in metafunc.definition.iter_markers("parametrize"):
|
|
if "document_store" in marker.args[0]:
|
|
found_mark_parametrize_document_store = True
|
|
break
|
|
# for all others that don't have explicit parametrization, we add the ones from the CLI arg
|
|
if "document_store" in metafunc.fixturenames and not found_mark_parametrize_document_store:
|
|
metafunc.parametrize("document_store", selected_doc_stores, indirect=True)
|