@@ -49,11 +49,13 @@ async def test_create_infinite_wait(self, index_name, spec1):
49
49
assert resp .metric == "cosine"
50
50
51
51
@pytest .mark .parametrize ("metric" , ["cosine" , "euclidean" , "dotproduct" ])
52
- async def test_create_default_index_with_metric (self , index_name , metric , spec1 ):
52
+ async def test_create_default_index_with_metric (self , index_name , metric , spec1 , index_tags ):
53
53
pc = PineconeAsyncio ()
54
54
55
- await pc .db .index .create (name = index_name , dimension = 10 , spec = spec1 , metric = metric )
56
- desc = await pc .db .index .describe (index_name )
55
+ await pc .db .index .create (
56
+ name = index_name , dimension = 10 , spec = spec1 , metric = metric , tags = index_tags
57
+ )
58
+ desc = await pc .db .index .describe (name = index_name )
57
59
if isinstance (metric , str ):
58
60
assert desc .metric == metric
59
61
else :
@@ -62,15 +64,15 @@ async def test_create_default_index_with_metric(self, index_name, metric, spec1)
62
64
await pc .close ()
63
65
64
66
@pytest .mark .parametrize (
65
- "metric_enum,vector_type_enum,dim,tags " ,
67
+ "metric_enum,vector_type_enum,dim" ,
66
68
[
67
- (Metric .COSINE , VectorType .DENSE , 10 , None ),
68
- (Metric .EUCLIDEAN , VectorType .DENSE , 10 , { "env" : "prod" } ),
69
- (Metric .DOTPRODUCT , VectorType .SPARSE , None , { "env" : "dev" } ),
69
+ (Metric .COSINE , VectorType .DENSE , 10 ),
70
+ (Metric .EUCLIDEAN , VectorType .DENSE , 10 ),
71
+ (Metric .DOTPRODUCT , VectorType .SPARSE , None ),
70
72
],
71
73
)
72
74
async def test_create_with_enum_values_and_tags (
73
- self , index_name , metric_enum , vector_type_enum , dim , tags
75
+ self , index_name , metric_enum , vector_type_enum , dim , index_tags
74
76
):
75
77
pc = PineconeAsyncio ()
76
78
args = {
@@ -79,63 +81,72 @@ async def test_create_with_enum_values_and_tags(
79
81
"vector_type" : vector_type_enum ,
80
82
"deletion_protection" : DeletionProtection .DISABLED ,
81
83
"spec" : ServerlessSpec (cloud = CloudProvider .AWS , region = AwsRegion .US_EAST_1 ),
82
- "tags" : tags ,
84
+ "tags" : index_tags ,
83
85
}
84
86
if dim is not None :
85
87
args ["dimension" ] = dim
86
88
87
89
await pc .db .index .create (** args )
88
90
89
- desc = await pc .db .index .describe (index_name )
91
+ desc = await pc .db .index .describe (name = index_name )
90
92
assert desc .metric == metric_enum .value
91
93
assert desc .vector_type == vector_type_enum .value
92
94
assert desc .dimension == dim
93
95
assert desc .deletion_protection == DeletionProtection .DISABLED .value
94
96
assert desc .name == index_name
95
97
assert desc .spec .serverless .cloud == "aws"
96
98
assert desc .spec .serverless .region == "us-east-1"
97
- if tags :
98
- assert desc . tags . to_dict () == tags
99
+ assert desc . tags . to_dict () == index_tags
100
+ await pc . db . index . delete ( name = index_name )
99
101
await pc .close ()
100
102
101
103
@pytest .mark .parametrize ("metric" , ["cosine" , "euclidean" , "dotproduct" ])
102
- async def test_create_dense_index_with_metric (self , index_name , spec1 , metric ):
104
+ async def test_create_dense_index_with_metric (self , index_name , spec1 , metric , index_tags ):
103
105
pc = PineconeAsyncio ()
104
106
105
107
await pc .create_index (
106
- name = index_name , dimension = 10 , spec = spec1 , metric = metric , vector_type = VectorType .DENSE
108
+ name = index_name ,
109
+ dimension = 10 ,
110
+ spec = spec1 ,
111
+ metric = metric ,
112
+ vector_type = VectorType .DENSE ,
113
+ tags = index_tags ,
107
114
)
108
115
109
- desc = await pc .db .index .describe (index_name )
116
+ desc = await pc .db .index .describe (name = index_name )
110
117
assert desc .metric == metric
111
118
assert desc .vector_type == "dense"
112
119
await pc .close ()
113
120
114
- async def test_create_with_optional_tags (self , index_name , spec1 ):
121
+ async def test_create_with_optional_tags (self , index_name , spec1 , index_tags ):
115
122
pc = PineconeAsyncio ()
116
- tags = {"foo" : "FOO" , "bar" : "BAR" }
117
123
118
- await pc .create_index (name = index_name , dimension = 10 , spec = spec1 , tags = tags )
124
+ await pc .create_index (name = index_name , dimension = 10 , spec = spec1 , tags = index_tags )
119
125
120
- desc = await pc .db .index .describe (index_name )
121
- assert desc .tags .to_dict () == tags
126
+ desc = await pc .db .index .describe (name = index_name )
127
+ assert desc .tags .to_dict () == index_tags
128
+ await pc .db .index .delete (name = index_name )
122
129
await pc .close ()
123
130
124
- async def test_create_sparse_index (self , index_name , spec1 ):
131
+ async def test_create_sparse_index (self , index_name , spec1 , index_tags ):
125
132
pc = PineconeAsyncio ()
126
133
127
134
await pc .create_index (
128
- name = index_name , spec = spec1 , metric = Metric .DOTPRODUCT , vector_type = VectorType .SPARSE
135
+ name = index_name ,
136
+ spec = spec1 ,
137
+ metric = Metric .DOTPRODUCT ,
138
+ vector_type = VectorType .SPARSE ,
139
+ tags = index_tags ,
129
140
)
130
141
131
- desc = await pc .db .index .describe (index_name )
142
+ desc = await pc .db .index .describe (name = index_name )
132
143
assert desc .vector_type == "sparse"
133
144
assert desc .dimension is None
134
- assert desc .vector_type == "sparse"
135
145
assert desc .metric == "dotproduct"
146
+ await pc .db .index .delete (name = index_name )
136
147
await pc .close ()
137
148
138
- async def test_create_with_deletion_protection (self , index_name , spec1 ):
149
+ async def test_create_with_deletion_protection (self , index_name , spec1 , index_tags ):
139
150
pc = PineconeAsyncio ()
140
151
141
152
await pc .create_index (
@@ -144,9 +155,10 @@ async def test_create_with_deletion_protection(self, index_name, spec1):
144
155
metric = Metric .DOTPRODUCT ,
145
156
vector_type = VectorType .SPARSE ,
146
157
deletion_protection = DeletionProtection .ENABLED ,
158
+ tags = index_tags ,
147
159
)
148
160
149
- desc = await pc .db .index .describe (index_name )
161
+ desc = await pc .db .index .describe (name = index_name )
150
162
assert desc .deletion_protection == "enabled"
151
163
assert desc .metric == "dotproduct"
152
164
assert desc .vector_type == "sparse"
@@ -157,6 +169,6 @@ async def test_create_with_deletion_protection(self, index_name, spec1):
157
169
158
170
await pc .configure_index (index_name , deletion_protection = DeletionProtection .DISABLED )
159
171
160
- desc2 = await pc .db .index .describe (index_name )
172
+ desc2 = await pc .db .index .describe (name = index_name )
161
173
assert desc2 .deletion_protection == "disabled"
162
174
await pc .close ()
0 commit comments