Skip to content

Commit fe00c46

Browse files
committed
Adjust test fixtures to find name for pre-created indexes
1 parent afb7965 commit fe00c46

File tree

3 files changed

+93
-9
lines changed

3 files changed

+93
-9
lines changed

pinecone/db_data/vector_factory.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
Vector as OpenApiVector,
1313
SparseValues as OpenApiSparseValues,
1414
)
15-
from .dataclasses import Vector
15+
from .dataclasses import Vector, SparseValues
1616

1717
from .errors import (
1818
VectorDictionaryMissingKeysError,
@@ -56,7 +56,7 @@ def _tuple_to_vector(item: Tuple, check_type: bool) -> OpenApiVector:
5656
if len(item) < 2 or len(item) > 3:
5757
raise VectorTupleLengthError(item)
5858
id, values, metadata = fix_tuple_length(item, 3)
59-
if isinstance(values, OpenApiSparseValues):
59+
if isinstance(values, (OpenApiSparseValues, SparseValues)):
6060
raise ValueError(
6161
"Sparse values are not supported in tuples. Please use either dicts or OpenApiVector objects as inputs."
6262
)

tests/integration/rest_asyncio/db/data/conftest.py

Lines changed: 45 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,12 @@
1313
logger = logging.getLogger(__name__)
1414

1515

16+
def build_sync_client():
17+
from pinecone import Pinecone
18+
19+
return Pinecone()
20+
21+
1622
@pytest.fixture(scope="session")
1723
def metric():
1824
return "cosine"
@@ -33,17 +39,53 @@ def spec():
3339

3440
@pytest.fixture(scope="session")
3541
def index_name():
36-
return generate_index_name("dense")
42+
if os.getenv("INDEX_HOST_DENSE"):
43+
host = os.getenv("INDEX_HOST_DENSE")
44+
logger.info(
45+
f"Looking up index name from pre-created index host from INDEX_HOST_DENSE: {host}"
46+
)
47+
pc = build_sync_client()
48+
index_name = pc.describe_index(host=host).name
49+
logger.info(
50+
f"Found index name: {index_name} for pre-created index host from INDEX_HOST_DENSE: {host}"
51+
)
52+
return index_name
53+
else:
54+
return generate_index_name("dense")
3755

3856

3957
@pytest.fixture(scope="session")
4058
def sparse_index_name():
41-
return generate_index_name("sparse")
59+
if os.getenv("INDEX_HOST_SPARSE"):
60+
host = os.getenv("INDEX_HOST_SPARSE")
61+
logger.info(
62+
f"Looking up index name from pre-created index host from INDEX_HOST_SPARSE: {host}"
63+
)
64+
pc = build_sync_client()
65+
index_name = pc.describe_index(host=host).name
66+
logger.info(
67+
f"Found index name: {index_name} for pre-created index host from INDEX_HOST_SPARSE: {host}"
68+
)
69+
return index_name
70+
else:
71+
return generate_index_name("sparse")
4272

4373

4474
@pytest.fixture(scope="session")
4575
def model_index_name():
46-
return generate_index_name("embed")
76+
if os.getenv("INDEX_HOST_EMBEDDED_MODEL"):
77+
host = os.getenv("INDEX_HOST_EMBEDDED_MODEL")
78+
logger.info(
79+
f"Looking up index name from pre-created index host from INDEX_HOST_EMBEDDED_MODEL: {host}"
80+
)
81+
pc = build_sync_client()
82+
index_name = pc.describe_index(host=host).name
83+
logger.info(
84+
f"Found index name: {index_name} for pre-created index host from INDEX_HOST_EMBEDDED_MODEL: {host}"
85+
)
86+
return index_name
87+
else:
88+
return generate_index_name("embed")
4789

4890

4991
def build_asyncioindex_client(index_host) -> _IndexAsyncio:

tests/integration/rest_sync/db/data/conftest.py

Lines changed: 46 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -70,22 +70,64 @@ def spec():
7070

7171
@pytest.fixture(scope="session")
7272
def index_name():
73-
return generate_index_name("dense")
73+
if os.getenv("INDEX_HOST_DENSE"):
74+
host = os.getenv("INDEX_HOST_DENSE")
75+
logger.info(
76+
f"Looking up index name from pre-created index host from INDEX_HOST_DENSE: {host}"
77+
)
78+
pc = build_client()
79+
index_name = pc.describe_index(host=host).name
80+
logger.info(
81+
f"Found index name: {index_name} for pre-created index host from INDEX_HOST_DENSE: {host}"
82+
)
83+
return index_name
84+
else:
85+
return generate_index_name("dense")
7486

7587

7688
@pytest.fixture(scope="session")
7789
def sparse_index_name():
78-
return generate_index_name("sparse")
90+
if os.getenv("INDEX_HOST_SPARSE"):
91+
host = os.getenv("INDEX_HOST_SPARSE")
92+
pc = build_client()
93+
logger.info(
94+
f"Looking up index name from pre-created index host from INDEX_HOST_SPARSE: {host}"
95+
)
96+
index_name = pc.describe_index(host=host).name
97+
logger.info(
98+
f"Found index name: {index_name} for pre-created index host from INDEX_HOST_SPARSE: {host}"
99+
)
100+
return index_name
101+
else:
102+
return generate_index_name("sparse")
79103

80104

81105
@pytest.fixture(scope="session")
82106
def hybrid_index_name():
83-
return generate_index_name("hybrid")
107+
if os.getenv("INDEX_HOST_HYBRID"):
108+
host = os.getenv("INDEX_HOST_HYBRID")
109+
pc = build_client()
110+
logger.info(
111+
f"Looking up index name from pre-created index host from INDEX_HOST_HYBRID: {host}"
112+
)
113+
index_name = pc.describe_index(host=host).name
114+
logger.info(
115+
f"Found index name: {index_name} for pre-created index host from INDEX_HOST_HYBRID: {host}"
116+
)
117+
return index_name
118+
else:
119+
return generate_index_name("hybrid")
84120

85121

86122
@pytest.fixture(scope="session")
87123
def model_index_name():
88-
return generate_index_name("embed")
124+
if os.getenv("INDEX_HOST_EMBEDDED_MODEL"):
125+
host = os.getenv("INDEX_HOST_EMBEDDED_MODEL")
126+
pc = build_client()
127+
index_name = pc.describe_index(host=host).name
128+
return index_name
129+
else:
130+
return generate_index_name("embed")
89131

90132

91133
def build_index_client(client, index_name, index_host):

0 commit comments

Comments
 (0)