@@ -83,11 +83,16 @@ def vectorDB(request):
8383
8484 HanaTestUtils .drop_table (config .conn , HanaTestConstants .TABLE_NAME )
8585
86+ @pytest .fixture
87+ def table_name_with_cleanup ():
88+ yield HanaTestConstants .TABLE_NAME_CUSTOM_DB
89+ HanaTestUtils .drop_table (config .conn , HanaTestConstants .TABLE_NAME_CUSTOM_DB )
90+
8691
8792@pytest .mark .skipif (not hanadb_installed , reason = "hanadb not installed" )
88- def test_hanavector_non_existing_table () -> None :
93+ def test_hanavector_non_existing_table (table_name_with_cleanup ) -> None :
8994 """Test end to end construction and search."""
90- table_name = "NON_EXISTING"
95+ table_name = table_name_with_cleanup
9196
9297 # Check if table is created
9398 vectordb = HanaDB (
@@ -101,8 +106,8 @@ def test_hanavector_non_existing_table() -> None:
101106
102107
103108@pytest .mark .skipif (not hanadb_installed , reason = "hanadb not installed" )
104- def test_hanavector_table_with_missing_columns () -> None :
105- table_name = "EXISTING_MISSING_COLS"
109+ def test_hanavector_table_with_missing_columns (table_name_with_cleanup ) -> None :
110+ table_name = table_name_with_cleanup
106111 try :
107112 cur = config .conn .cursor ()
108113 sql_str = f"CREATE TABLE { table_name } (WRONG_COL NVARCHAR(500));"
@@ -126,8 +131,8 @@ def test_hanavector_table_with_missing_columns() -> None:
126131
127132
128133@pytest .mark .skipif (not hanadb_installed , reason = "hanadb not installed" )
129- def test_hanavector_table_with_nvarchar_content () -> None :
130- table_name = "EXISTING_NVARCHAR"
134+ def test_hanavector_table_with_nvarchar_content (table_name_with_cleanup ) -> None :
135+ table_name = table_name_with_cleanup
131136 content_column = "TEST_TEXT"
132137 metadata_column = "TEST_META"
133138 vector_column = "TEST_VECTOR"
@@ -166,8 +171,8 @@ def test_hanavector_table_with_nvarchar_content() -> None:
166171
167172
168173@pytest .mark .skipif (not hanadb_installed , reason = "hanadb not installed" )
169- def test_hanavector_table_with_wrong_typed_columns () -> None :
170- table_name = "EXISTING_WRONG_TYPES"
174+ def test_hanavector_table_with_wrong_typed_columns (table_name_with_cleanup ) -> None :
175+ table_name = table_name_with_cleanup
171176 content_column = "DOC_TEXT"
172177 metadata_column = "DOC_META"
173178 vector_column = "DOC_VECTOR"
@@ -198,9 +203,9 @@ def test_hanavector_table_with_wrong_typed_columns() -> None:
198203
199204
200205@pytest .mark .skipif (not hanadb_installed , reason = "hanadb not installed" )
201- def test_hanavector_non_existing_table_fixed_vector_length () -> None :
206+ def test_hanavector_non_existing_table_fixed_vector_length (table_name_with_cleanup ) -> None :
202207 """Test end to end construction and search."""
203- table_name = "NON_EXISTING_FIXED_VECTOR_LENGTH"
208+ table_name = table_name_with_cleanup
204209 vector_column = "MY_VECTOR"
205210 vector_column_length = 42
206211
@@ -237,12 +242,13 @@ def test_hanavector_add_texts(vectorDB) -> None:
237242
238243
239244@pytest .mark .skipif (not hanadb_installed , reason = "hanadb not installed" )
240- def test_hanavector_from_texts () -> None :
245+ def test_hanavector_from_texts (table_name_with_cleanup ) -> None :
246+ table_name = table_name_with_cleanup
241247 vectorDB = HanaDB .from_texts (
242248 connection = config .conn ,
243249 texts = HanaTestConstants .TEXTS ,
244250 embedding = embedding ,
245- table_name = HanaTestConstants . TABLE_NAME ,
251+ table_name = table_name ,
246252 )
247253
248254 # test if vectorDB is instance of HanaDB
@@ -251,7 +257,7 @@ def test_hanavector_from_texts() -> None:
251257 # check that embeddings have been created in the table
252258 number_of_texts = len (HanaTestConstants .TEXTS )
253259 number_of_rows = - 1
254- sql_str = f"SELECT COUNT(*) FROM { HanaTestConstants . TABLE_NAME } "
260+ sql_str = f"SELECT COUNT(*) FROM { table_name } "
255261 cur = config .conn .cursor ()
256262 cur .execute (sql_str )
257263 if cur .has_result_set ():
@@ -306,8 +312,8 @@ def test_hanavector_similarity_search_by_vector_simple_invalid(
306312
307313
308314@pytest .mark .skipif (not hanadb_installed , reason = "hanadb not installed" )
309- def test_hanavector_similarity_search_simple_euclidean_distance () -> None :
310- table_name = "TEST_TABLE_SEARCH_EUCLIDIAN"
315+ def test_hanavector_similarity_search_simple_euclidean_distance (table_name_with_cleanup ) -> None :
316+ table_name = table_name_with_cleanup
311317
312318 # Check if table is created
313319 vectorDB = HanaDB .from_texts (
@@ -456,10 +462,10 @@ def test_hanavector_similarity_search_with_relevance_score(vectorDB) -> None:
456462
457463
458464@pytest .mark .skipif (not hanadb_installed , reason = "hanadb not installed" )
459- def test_hanavector_similarity_search_with_relevance_score_with_euclidian_distance () -> (
465+ def test_hanavector_similarity_search_with_relevance_score_with_euclidian_distance (table_name_with_cleanup ) -> (
460466 None
461467):
462- table_name = "TEST_TABLE_REL_SCORE_EUCLIDIAN"
468+ table_name = table_name_with_cleanup
463469
464470 # Check if table is created
465471 vectorDB = HanaDB .from_texts (
@@ -482,8 +488,8 @@ def test_hanavector_similarity_search_with_relevance_score_with_euclidian_distan
482488
483489
484490@pytest .mark .skipif (not hanadb_installed , reason = "hanadb not installed" )
485- def test_hanavector_similarity_search_with_score_with_euclidian_distance () -> None :
486- table_name = "TEST_TABLE_SCORE_DISTANCE"
491+ def test_hanavector_similarity_search_with_score_with_euclidian_distance (table_name_with_cleanup ) -> None :
492+ table_name = table_name_with_cleanup
487493
488494 # Check if table is created
489495 vectorDB = HanaDB .from_texts (
@@ -703,8 +709,8 @@ def test_hanavector_filter_prepared_statement_params(
703709 assert len (rows ) == 1
704710
705711
706- def test_invalid_metadata_keys () -> None :
707- table_name = "TEST_TABLE_INVALID_METADATA"
712+ def test_invalid_metadata_keys (table_name_with_cleanup ) -> None :
713+ table_name = table_name_with_cleanup
708714
709715 invalid_metadatas = [
710716 {"sta rt" : 0 , "end" : 100 , "quality" : "good" , "ready" : True },
@@ -745,35 +751,39 @@ def test_hanavector_table_mixed_case_names() -> None:
745751 content_column = "TextColumn"
746752 metadata_column = "MetaColumn"
747753 vector_column = "VectorColumn"
754+
755+ try :
756+ vectordb = HanaDB (
757+ connection = config .conn ,
758+ embedding = embedding ,
759+ distance_strategy = DistanceStrategy .COSINE ,
760+ table_name = table_name ,
761+ content_column = content_column ,
762+ metadata_column = metadata_column ,
763+ vector_column = vector_column ,
764+ )
748765
749- vectordb = HanaDB (
750- connection = config .conn ,
751- embedding = embedding ,
752- distance_strategy = DistanceStrategy .COSINE ,
753- table_name = table_name ,
754- content_column = content_column ,
755- metadata_column = metadata_column ,
756- vector_column = vector_column ,
757- )
758-
759- vectordb .add_texts (texts = HanaTestConstants .TEXTS )
766+ vectordb .add_texts (texts = HanaTestConstants .TEXTS )
760767
761- # check that embeddings have been created in the table
762- number_of_texts = len (HanaTestConstants .TEXTS )
763- number_of_rows = - 1
764- sql_str = f'SELECT COUNT(*) FROM "{ table_name } "'
765- cur = config .conn .cursor ()
766- cur .execute (sql_str )
767- if cur .has_result_set ():
768- rows = cur .fetchall ()
769- number_of_rows = rows [0 ][0 ]
770- assert number_of_rows == number_of_texts
768+ # check that embeddings have been created in the table
769+ number_of_texts = len (HanaTestConstants .TEXTS )
770+ number_of_rows = - 1
771+ sql_str = f'SELECT COUNT(*) FROM "{ table_name } "'
772+ cur = config .conn .cursor ()
773+ cur .execute (sql_str )
774+ if cur .has_result_set ():
775+ rows = cur .fetchall ()
776+ number_of_rows = rows [0 ][0 ]
777+ assert number_of_rows == number_of_texts
771778
772- # check results of similarity search
773- assert (
774- HanaTestConstants .TEXTS [0 ]
775- == vectordb .similarity_search (HanaTestConstants .TEXTS [0 ], 1 )[0 ].page_content
776- )
779+ # check results of similarity search
780+ assert (
781+ HanaTestConstants .TEXTS [0 ]
782+ == vectordb .similarity_search (HanaTestConstants .TEXTS [0 ], 1 )[0 ].page_content
783+ )
784+
785+ finally :
786+ HanaTestUtils .drop_table (config .conn , table_name )
777787
778788
779789@pytest .mark .parametrize (
@@ -799,8 +809,8 @@ def test_hanavector_with_with_metadata_filters(
799809
800810
801811@pytest .mark .skipif (not hanadb_installed , reason = "hanadb not installed" )
802- def test_preexisting_specific_columns_for_metadata_fill () -> None :
803- table_name = "PREEXISTING_FILTER_COLUMNS"
812+ def test_preexisting_specific_columns_for_metadata_fill (table_name_with_cleanup ) -> None :
813+ table_name = table_name_with_cleanup
804814
805815 sql_str = (
806816 f'CREATE TABLE "{ table_name } " ('
@@ -858,8 +868,8 @@ def test_preexisting_specific_columns_for_metadata_fill() -> None:
858868
859869
860870@pytest .mark .skipif (not hanadb_installed , reason = "hanadb not installed" )
861- def test_preexisting_specific_columns_for_metadata_via_array () -> None :
862- table_name = "PREEXISTING_FILTER_COLUMNS_VIA_ARRAY"
871+ def test_preexisting_specific_columns_for_metadata_via_array (table_name_with_cleanup ) -> None :
872+ table_name = table_name_with_cleanup
863873
864874 sql_str = (
865875 f'CREATE TABLE "{ table_name } " ('
@@ -928,8 +938,8 @@ def test_preexisting_specific_columns_for_metadata_via_array() -> None:
928938
929939
930940@pytest .mark .skipif (not hanadb_installed , reason = "hanadb not installed" )
931- def test_preexisting_specific_columns_for_metadata_multiple_columns () -> None :
932- table_name = "PREEXISTING_FILTER_MULTIPLE_COLUMNS"
941+ def test_preexisting_specific_columns_for_metadata_multiple_columns (table_name_with_cleanup ) -> None :
942+ table_name = table_name_with_cleanup
933943
934944 sql_str = (
935945 f'CREATE TABLE "{ table_name } " ('
@@ -975,8 +985,8 @@ def test_preexisting_specific_columns_for_metadata_multiple_columns() -> None:
975985
976986
977987@pytest .mark .skipif (not hanadb_installed , reason = "hanadb not installed" )
978- def test_preexisting_specific_columns_for_metadata_empty_columns () -> None :
979- table_name = "PREEXISTING_FILTER_MULTIPLE_COLUMNS_EMPTY"
988+ def test_preexisting_specific_columns_for_metadata_empty_columns (table_name_with_cleanup ) -> None :
989+ table_name = table_name_with_cleanup
980990
981991 sql_str = (
982992 f'CREATE TABLE "{ table_name } " ('
@@ -1026,8 +1036,8 @@ def test_preexisting_specific_columns_for_metadata_empty_columns() -> None:
10261036
10271037
10281038@pytest .mark .skipif (not hanadb_installed , reason = "hanadb not installed" )
1029- def test_preexisting_specific_columns_for_metadata_wrong_type_or_non_existing () -> None :
1030- table_name = "PREEXISTING_FILTER_COLUMNS_WRONG_TYPE"
1039+ def test_preexisting_specific_columns_for_metadata_wrong_type_or_non_existing (table_name_with_cleanup ) -> None :
1040+ table_name = table_name_with_cleanup
10311041
10321042 sql_str = (
10331043 f'CREATE TABLE "{ table_name } " ('
@@ -1075,8 +1085,8 @@ def test_preexisting_specific_columns_for_metadata_wrong_type_or_non_existing()
10751085
10761086
10771087@pytest .mark .skipif (not hanadb_installed , reason = "hanadb not installed" )
1078- def test_preexisting_specific_columns_for_returned_metadata_completeness () -> None :
1079- table_name = "PREEXISTING_FILTER_COLUMNS_METADATA_COMPLETENESS"
1088+ def test_preexisting_specific_columns_for_returned_metadata_completeness (table_name_with_cleanup ) -> None :
1089+ table_name = table_name_with_cleanup
10801090
10811091 sql_str = (
10821092 f'CREATE TABLE "{ table_name } " ('
@@ -1134,8 +1144,8 @@ def test_create_hnsw_index_with_default_values(vectorDB) -> None:
11341144
11351145
11361146@pytest .mark .skipif (not hanadb_installed , reason = "hanadb not installed" )
1137- def test_create_hnsw_index_with_defined_values () -> None :
1138- table_name = "TEST_TABLE_HNSW_INDEX_DEFINED"
1147+ def test_create_hnsw_index_with_defined_values (table_name_with_cleanup ) -> None :
1148+ table_name = table_name_with_cleanup
11391149
11401150 # Create table and insert data
11411151 vectorDB = HanaDB .from_texts (
@@ -1239,8 +1249,8 @@ def test_create_hnsw_index_invalid_ef_search(vectorDB) -> None:
12391249
12401250
12411251@pytest .mark .skipif (not hanadb_installed , reason = "hanadb not installed" )
1242- def test_hanavector_keyword_search () -> None :
1243- table_name = "TEST_TABLE_KEYWORD_SEARCH_WITHOUT_UNSPECIFIC_METADATA_COL"
1252+ def test_hanavector_keyword_search (table_name_with_cleanup ) -> None :
1253+ table_name = table_name_with_cleanup
12441254
12451255 sql_str = (
12461256 f'CREATE TABLE "{ table_name } " ('
0 commit comments