| 
									
										
										
										
											2022-02-09 21:29:05 +01:00
										 |  |  | def pytest_addoption(parser): | 
					
						
							| 
									
										
										
										
											2022-03-03 15:19:27 +01:00
										 |  |  |     parser.addoption( | 
					
						
							|  |  |  |         "--document_store_type", action="store", default="elasticsearch, faiss, sql, memory, milvus1, milvus, weaviate" | 
					
						
							|  |  |  |     ) | 
					
						
							| 
									
										
										
										
											2022-02-09 21:29:05 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def pytest_generate_tests(metafunc): | 
					
						
							|  |  |  |     # 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) |