17
17
18
18
19
19
class TestCreateServerlessIndexHappyPath :
20
- def test_create_index (self , pc : Pinecone , index_name ):
20
+ def test_create_index (self , pc : Pinecone , index_name , index_tags ):
21
21
resp = pc .db .index .create (
22
22
name = index_name ,
23
23
dimension = 10 ,
24
24
spec = ServerlessSpec (cloud = CloudProvider .AWS , region = AwsRegion .US_EAST_1 ),
25
+ tags = index_tags ,
25
26
)
26
27
assert resp .name == index_name
27
28
assert resp .dimension == 10
@@ -36,23 +37,25 @@ def test_create_index(self, pc: Pinecone, index_name):
36
37
assert desc .deletion_protection == "disabled" # default value
37
38
assert desc .vector_type == "dense" # default value
38
39
39
- def test_create_skip_wait (self , pc , index_name ):
40
+ def test_create_skip_wait (self , pc , index_name , index_tags ):
40
41
resp = pc .db .index .create (
41
42
name = index_name ,
42
43
dimension = 10 ,
43
44
spec = ServerlessSpec (cloud = CloudProvider .AWS , region = AwsRegion .US_EAST_1 ),
44
45
timeout = - 1 ,
46
+ tags = index_tags ,
45
47
)
46
48
assert resp .name == index_name
47
49
assert resp .dimension == 10
48
50
assert resp .metric == "cosine"
49
51
50
- def test_create_infinite_wait (self , pc , index_name ):
52
+ def test_create_infinite_wait (self , pc , index_name , index_tags ):
51
53
resp = pc .db .index .create (
52
54
name = index_name ,
53
55
dimension = 10 ,
54
56
spec = ServerlessSpec (cloud = CloudProvider .AWS , region = AwsRegion .US_EAST_1 ),
55
57
timeout = None ,
58
+ tags = index_tags ,
56
59
)
57
60
assert resp .name == index_name
58
61
assert resp .dimension == 10
@@ -70,23 +73,23 @@ def test_create_default_index_with_metric(self, pc, create_index_params, metric)
70
73
assert desc .vector_type == "dense"
71
74
72
75
@pytest .mark .parametrize (
73
- "metric_enum,vector_type_enum,dim,tags " ,
76
+ "metric_enum,vector_type_enum,dim" ,
74
77
[
75
- (Metric .COSINE , VectorType .DENSE , 10 , None ),
76
- (Metric .EUCLIDEAN , VectorType .DENSE , 10 , { "env" : "prod" } ),
77
- (Metric .DOTPRODUCT , VectorType .SPARSE , None , { "env" : "dev" } ),
78
+ (Metric .COSINE , VectorType .DENSE , 10 ),
79
+ (Metric .EUCLIDEAN , VectorType .DENSE , 10 ),
80
+ (Metric .DOTPRODUCT , VectorType .SPARSE , None ),
78
81
],
79
82
)
80
83
def test_create_with_enum_values (
81
- self , pc , index_name , metric_enum , vector_type_enum , dim , tags
84
+ self , pc , index_name , metric_enum , vector_type_enum , dim , index_tags
82
85
):
83
86
args = {
84
87
"name" : index_name ,
85
88
"metric" : metric_enum ,
86
89
"vector_type" : vector_type_enum ,
87
90
"deletion_protection" : DeletionProtection .DISABLED ,
88
91
"spec" : ServerlessSpec (cloud = CloudProvider .AWS , region = AwsRegion .US_EAST_1 ),
89
- "tags" : tags ,
92
+ "tags" : index_tags ,
90
93
}
91
94
if dim is not None :
92
95
args ["dimension" ] = dim
@@ -101,8 +104,7 @@ def test_create_with_enum_values(
101
104
assert desc .name == index_name
102
105
assert desc .spec .serverless .cloud == "aws"
103
106
assert desc .spec .serverless .region == "us-east-1"
104
- if tags :
105
- assert desc .tags .to_dict () == tags
107
+ assert desc .tags .to_dict () == index_tags
106
108
107
109
@pytest .mark .parametrize ("metric" , ["cosine" , "euclidean" , "dotproduct" ])
108
110
def test_create_dense_index_with_metric (self , pc , create_index_params , metric ):
@@ -113,13 +115,6 @@ def test_create_dense_index_with_metric(self, pc, create_index_params, metric):
113
115
assert desc .metric == metric
114
116
assert desc .vector_type == "dense"
115
117
116
- def test_create_with_optional_tags (self , pc , create_index_params ):
117
- tags = {"foo" : "FOO" , "bar" : "BAR" }
118
- create_index_params ["tags" ] = tags
119
- pc .db .index .create (** create_index_params )
120
- desc = pc .db .index .describe (create_index_params ["name" ])
121
- assert desc .tags .to_dict () == tags
122
-
123
118
124
119
class TestCreatePodIndexHappyPath :
125
120
def test_create_index_minimal_config (
@@ -152,7 +147,7 @@ def test_create_index_with_spec_options(
152
147
metric = "cosine" ,
153
148
spec = PodSpec (
154
149
environment = pod_environment ,
155
- pod_type = "p1.x2 " ,
150
+ pod_type = "p1.x1 " ,
156
151
replicas = 2 ,
157
152
metadata_config = {"indexed" : ["foo" , "bar" ]},
158
153
),
@@ -164,9 +159,10 @@ def test_create_index_with_spec_options(
164
159
assert desc .dimension == 10
165
160
assert desc .metric == "cosine"
166
161
assert desc .spec .pod .environment == pod_environment
167
- assert desc .spec .pod .pod_type == "p1.x2 "
162
+ assert desc .spec .pod .pod_type == "p1.x1 "
168
163
assert desc .spec .pod .replicas == 2
169
164
assert desc .spec .pod .metadata_config .indexed == ["foo" , "bar" ]
165
+ assert desc .tags .to_dict () == index_tags
170
166
171
167
def test_create_index_with_deletion_protection (
172
168
self , pc : Pinecone , index_name , pod_environment , index_tags
0 commit comments