Skip to content

Commit

Permalink
Add new test with enum values
Browse files Browse the repository at this point in the history
  • Loading branch information
jhamon committed Jan 29, 2025
1 parent 4434e27 commit d69cb1e
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 5 deletions.
4 changes: 4 additions & 0 deletions tests/integration/control/serverless/conftest.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
import pytest
import random
import time
import logging
from pinecone import Pinecone, NotFoundException, PineconeApiException
from ...helpers import generate_index_name, get_environment_var

logger = logging.getLogger(__name__)


@pytest.fixture()
def client():
Expand Down Expand Up @@ -101,6 +104,7 @@ def cleanup(client, index_name):
yield

try:
logger.debug("Attempting to delete index with name: " + index_name)
client.delete_index(index_name, -1)
except Exception:
pass
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
import pytest
from pinecone import Metric, VectorType
from pinecone import (
Metric,
VectorType,
DeletionProtection,
ServerlessSpec,
CloudProvider,
AwsRegion,
)


class TestCreateSLIndexHappyPath:
Expand All @@ -14,17 +21,42 @@ def test_create_index(self, client, create_sl_index_params):
assert desc.deletion_protection == "disabled" # default value
assert desc.vector_type == "dense" # default value

@pytest.mark.parametrize(
"metric",
["cosine", "euclidean", "dotproduct", Metric.COSINE, Metric.EUCLIDEAN, Metric.DOTPRODUCT],
)
@pytest.mark.parametrize("metric", ["cosine", "euclidean", "dotproduct"])
def test_create_default_index_with_metric(self, client, create_sl_index_params, metric):
create_sl_index_params["metric"] = metric
client.create_index(**create_sl_index_params)
desc = client.describe_index(create_sl_index_params["name"])
assert desc.metric == metric
assert desc.vector_type == "dense"

@pytest.mark.parametrize(
"metric_enum,vector_type_enum,dim",
[
(Metric.COSINE, VectorType.DENSE, 10),
(Metric.EUCLIDEAN, VectorType.DENSE, 10),
(Metric.DOTPRODUCT, VectorType.SPARSE, None),
],
)
def test_create_with_enum_values(self, client, index_name, metric_enum, vector_type_enum, dim):
args = {
"name": index_name,
"metric": metric_enum,
"vector_type": vector_type_enum,
"deletion_protection": DeletionProtection.DISABLED,
"spec": ServerlessSpec(cloud=CloudProvider.AWS, region=AwsRegion.US_EAST_1),
}
if dim is not None:
args["dimension"] = dim
client.create_index(**args)
desc = client.describe_index(index_name)
assert desc.metric == metric_enum.value
assert desc.vector_type == vector_type_enum.value
assert desc.dimension == dim
assert desc.deletion_protection == DeletionProtection.DISABLED.value
assert desc.name == index_name
assert desc.spec.serverless.cloud == "aws"
assert desc.spec.serverless.region == "us-east-1"

@pytest.mark.parametrize("metric", ["cosine", "euclidean", "dotproduct"])
def test_create_dense_index_with_metric(self, client, create_sl_index_params, metric):
create_sl_index_params["metric"] = metric
Expand Down

0 comments on commit d69cb1e

Please sign in to comment.