[test]Update deploy test testcases (#20014)

Signed-off-by: zhuwenxing <wenxing.zhu@zilliz.com>

Signed-off-by: zhuwenxing <wenxing.zhu@zilliz.com>
pull/19986/head
zhuwenxing 2022-10-24 17:55:30 +08:00 committed by GitHub
parent 69822bdf4f
commit d90f9cab55
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 73 additions and 24 deletions

View File

@ -89,11 +89,14 @@ class TestcaseBase(Base):
def _connect(self):
""" Add a connection and create the connect """
if cf.param_info.param_user and cf.param_info.param_password:
res, is_succ = self.connection_wrap.connect(alias=DefaultConfig.DEFAULT_USING, host=cf.param_info.param_host,
res, is_succ = self.connection_wrap.connect(alias=DefaultConfig.DEFAULT_USING,
host=cf.param_info.param_host,
port=cf.param_info.param_port, user=cf.param_info.param_user,
password=cf.param_info.param_password, secure=cf.param_info.param_secure)
password=cf.param_info.param_password,
secure=cf.param_info.param_secure)
else:
res, is_succ = self.connection_wrap.connect(alias=DefaultConfig.DEFAULT_USING, host=cf.param_info.param_host,
res, is_succ = self.connection_wrap.connect(alias=DefaultConfig.DEFAULT_USING,
host=cf.param_info.param_host,
port=cf.param_info.param_port)
return res
@ -103,7 +106,8 @@ class TestcaseBase(Base):
if not self.connection_wrap.has_connection(alias=DefaultConfig.DEFAULT_USING)[0]:
self._connect()
collection_w = ApiCollectionWrapper()
collection_w.init_collection(name=name, schema=schema, shards_num=shards_num, check_task=check_task, check_items=check_items, **kwargs)
collection_w.init_collection(name=name, schema=schema, shards_num=shards_num, check_task=check_task,
check_items=check_items, **kwargs)
self.collection_object_list.append(collection_w)
return collection_w
@ -127,6 +131,41 @@ class TestcaseBase(Base):
**kwargs)
return partition_wrap
def insert_data_general(self, prefix="test", insert_data=False, nb=ct.default_nb,
partition_num=0, is_binary=False, is_all_data_type=False,
auto_id=False, dim=ct.default_dim,
primary_field=ct.default_int64_field_name, is_flush=True, name=None, **kwargs):
"""
"""
self._connect()
collection_name = cf.gen_unique_str(prefix)
if name is not None:
collection_name = name
vectors = []
binary_raw_vectors = []
insert_ids = []
time_stamp = 0
# 1 create collection
default_schema = cf.gen_default_collection_schema(auto_id=auto_id, dim=dim, primary_field=primary_field)
if is_binary:
default_schema = cf.gen_default_binary_collection_schema(auto_id=auto_id, dim=dim,
primary_field=primary_field)
if is_all_data_type:
default_schema = cf.gen_collection_schema_all_datatype(auto_id=auto_id, dim=dim,
primary_field=primary_field)
log.info("init_collection_general: collection creation")
collection_w = self.init_collection_wrap(name=collection_name, schema=default_schema, **kwargs)
pre_entities = collection_w.num_entities
if insert_data:
collection_w, vectors, binary_raw_vectors, insert_ids, time_stamp = \
cf.insert_data(collection_w, nb, is_binary, is_all_data_type, auto_id=auto_id, dim=dim)
if is_flush:
collection_w.flush()
assert collection_w.num_entities == nb + pre_entities
return collection_w, vectors, binary_raw_vectors, insert_ids, time_stamp
def init_collection_general(self, prefix="test", insert_data=False, nb=ct.default_nb,
partition_num=0, is_binary=False, is_all_data_type=False,
auto_id=False, dim=ct.default_dim, is_index=False,
@ -152,9 +191,11 @@ class TestcaseBase(Base):
# 1 create collection
default_schema = cf.gen_default_collection_schema(auto_id=auto_id, dim=dim, primary_field=primary_field)
if is_binary:
default_schema = cf.gen_default_binary_collection_schema(auto_id=auto_id, dim=dim, primary_field=primary_field)
default_schema = cf.gen_default_binary_collection_schema(auto_id=auto_id, dim=dim,
primary_field=primary_field)
if is_all_data_type:
default_schema = cf.gen_collection_schema_all_datatype(auto_id=auto_id, dim=dim, primary_field=primary_field)
default_schema = cf.gen_collection_schema_all_datatype(auto_id=auto_id, dim=dim,
primary_field=primary_field)
log.info("init_collection_general: collection creation")
collection_w = self.init_collection_wrap(name=collection_name, schema=default_schema, **kwargs)
# 2 add extra partitions if specified (default is 1 partition named "_default")

View File

@ -238,7 +238,6 @@ class ApiCollectionWrapper:
index_name = INDEX_NAME if index_name is None else index_name
index_name = kwargs.get("index_name", index_name)
kwargs.update({"timeout": timeout, "index_name": index_name})
func_name = sys._getframe().f_code.co_name
res, check = api_request([self.collection.create_index, field_name, index_params], **kwargs)
check_result = ResponseChecker(res, func_name, check_task, check_items, check,

View File

@ -16,6 +16,7 @@ def task_1(data_size, host):
connections.connect(host=host, port=19530, timeout=60)
col_list = get_collections(prefix, check=True)
assert len(col_list) == len(all_index_types)
create_index(prefix)
load_and_search(prefix)
create_collections_and_insert_data(prefix, data_size)
create_index(prefix)

View File

@ -52,7 +52,10 @@ class TestActionFirstDeployment(TestDeployBase):
is_binary = False
if "BIN" in name:
is_binary = True
self.init_collection_general(insert_data=False, is_binary=is_binary, name=name)[0]
collection_w = self.init_collection_general(insert_data=False, is_binary=is_binary, name=name)[0]
if collection_w.has_index():
collection_w.drop_index()
@pytest.mark.tags(CaseLabel.L3)

View File

@ -41,6 +41,21 @@ class TestActionSecondDeployment(TestDeployBase):
method.__name__)
log.info("skip drop collection")
def create_index(self, collection_w, default_index_field, default_index_param):
index_field_map = dict([(index.field_name, index.index_name) for index in collection_w.indexes])
index_infos = [index.to_dict() for index in collection_w.indexes]
log.info(index_infos)
# log.info(f"{default_index_field:} {default_index_param:}")
if len(index_infos) > 0:
log.info(
f"current index param is {index_infos[0]['index_param']}, passed in param is {default_index_param}")
log.info(
f"current index name is {index_infos[0]['index_name']}, passed in param is {index_field_map.get(default_index_field)}")
collection_w.create_index(default_index_field, default_index_param,
index_name=index_field_map.get(default_index_field, gen_unique_str("test")))
collection_w.create_index(default_string_field_name, {},
index_name=index_field_map.get(default_string_field_name, gen_unique_str("test")))
@pytest.mark.tags(CaseLabel.L3)
def test_check(self, all_collection_name, data_size):
"""
@ -93,11 +108,7 @@ class TestActionSecondDeployment(TestDeployBase):
# load if not loaded
if replicas_loaded == 0:
default_index_param = gen_index_param(vector_index_type)
collection_w.create_index(default_index_field, default_index_param,
index_name=index_field_map[default_index_field])
collection_w.create_index(default_string_field_name, {},
index_name=index_field_map[default_string_field_name])
self.create_index(collection_w, default_index_field, default_index_param)
collection_w.load()
# search and query
@ -148,8 +159,8 @@ class TestActionSecondDeployment(TestDeployBase):
# insert data and flush
for i in range(2):
self.init_collection_general(insert_data=True, is_binary=is_binary, nb=data_size,
is_flush=False, is_index=True, name=name)
self.insert_data_general(insert_data=True, is_binary=is_binary, nb=data_size,
is_flush=False, is_index=True, name=name)
if pymilvus_version >= "2.2.0":
collection_w.flush()
else:
@ -175,12 +186,8 @@ class TestActionSecondDeployment(TestDeployBase):
for index_name in index_names:
collection_w.release()
collection_w.drop_index(index_name=index_name)
default_index_param = gen_index_param(vector_index_type)
collection_w.create_index(default_index_field, default_index_param,
index_name=index_field_map[default_index_field])
collection_w.create_index(default_string_field_name, {},
index_name=index_field_map[default_string_field_name])
self.create_index(collection_w, default_index_field, default_index_param)
collection_w.load()
collection_w.search(vectors_to_search[:default_nq], default_search_field,
@ -193,11 +200,9 @@ class TestActionSecondDeployment(TestDeployBase):
collection_w.query(default_term_expr, output_fields=[ct.default_int64_field_name],
check_task=CheckTasks.check_query_not_empty)
# create index
# create index
default_index_param = gen_index_param(vector_index_type)
collection_w.create_index(default_index_field, default_index_param,
index_name=index_field_map[default_index_field])
collection_w.create_index(default_string_field_name, {}, index_name=index_field_map[default_string_field_name])
self.create_index(collection_w, default_index_field, default_index_param)
# search and query
collection_w.search(vectors_to_search[:default_nq], default_search_field,