Skip to content

Commit

Permalink
test: add database milvus client testcases (#39505)
Browse files Browse the repository at this point in the history
/kind improvement

---------

Signed-off-by: laurazhao0611 <[email protected]>
Co-authored-by: laurazhao0611 <[email protected]>
  • Loading branch information
laurazhao0611 and laurazhao0611 authored Jan 23, 2025
1 parent 844df76 commit a5217e9
Show file tree
Hide file tree
Showing 4 changed files with 630 additions and 1 deletion.
10 changes: 10 additions & 0 deletions tests/python_client/base/client_v2_base.py
Original file line number Diff line number Diff line change
Expand Up @@ -616,6 +616,16 @@ def using_database(self, client, db_name, timeout=None, check_task=None, check_i
check_result = ResponseChecker(res, func_name, check_task, check_items, check, **kwargs).run()
return res, check_result

@trace()
def use_database(self, client, db_name, timeout=None, check_task=None, check_items=None, **kwargs):
timeout = TIMEOUT if timeout is None else timeout
kwargs.update({"timeout": timeout})

func_name = sys._getframe().f_code.co_name
res, check = api_request([client.use_database, db_name], **kwargs)
check_result = ResponseChecker(res, func_name, check_task, check_items, check, **kwargs).run()
return res, check_result

def create_user(self, client, user_name, password, timeout=None, check_task=None, check_items=None, **kwargs):
timeout = TIMEOUT if timeout is None else timeout
kwargs.update({"timeout": timeout})
Expand Down
44 changes: 43 additions & 1 deletion tests/python_client/check/func_check.py
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,9 @@ def run(self):
elif self.check_task == CheckTasks.check_collection_fields_properties:
# check field properties in describe collection response
result = self.check_collection_fields_properties(self.response, self.func_name, self.check_items)

elif self.check_task == CheckTasks.check_describe_database_property:
# describe database interface(high level api) response check
result = self.check_describe_database_property(self.response, self.func_name, self.check_items)
elif self.check_task == CheckTasks.check_insert_result:
# check `insert` interface response
result = self.check_insert_response(check_items=self.check_items)
Expand Down Expand Up @@ -297,6 +299,46 @@ def check_collection_fields_properties(res, func_name, check_items):
assert field['params'].items() >= check_items[key].items()
return True

@staticmethod
def check_describe_database_property(res, func_name, check_items):
"""
According to the check_items to check database properties of res, which return from func_name
:param res: actual response of init database
:type res: Database
:param func_name: init database API
:type func_name: str
:param check_items: which items expected to be checked
:type check_items: dict, {check_key: expected_value}
"""
exp_func_name = "describe_database"
if func_name != exp_func_name:
log.warning("The function name is {} rather than {}".format(func_name, exp_func_name))
if len(check_items) == 0:
raise Exception("No expect values found in the check task")
if check_items.get("db_name", None) is not None:
assert res["name"] == check_items.get("db_name")
if check_items.get("database.force.deny.writing", None) is not None:
if check_items.get("database.force.deny.writing") == "Missing":
assert "database.force.deny.writing" not in res
else:
assert res["database.force.deny.writing"] == check_items.get("database.force.deny.writing")
if check_items.get("database.force.deny.reading", None) is not None:
if check_items.get("database.force.deny.reading") == "Missing":
assert "database.force.deny.reading" not in res
else:
assert res["database.force.deny.reading"] == check_items.get("database.force.deny.reading")
if check_items.get("database.replica.number", None) is not None:
if check_items.get("database.replica.number") == "Missing":
assert "database.replica.number" not in res
else:
assert res["database.replica.number"] == check_items.get("database.replica.number")
if check_items.get("properties_length", None) is not None:
assert len(res) == check_items.get("properties_length")

return True

@staticmethod
def check_partition_property(partition, func_name, check_items):
exp_func_name = "init_partition"
Expand Down
1 change: 1 addition & 0 deletions tests/python_client/common/common_type.py
Original file line number Diff line number Diff line change
Expand Up @@ -304,6 +304,7 @@ class CheckTasks:
check_value_equal = "check_value_equal"
check_rg_property = "check_resource_group_property"
check_describe_collection_property = "check_describe_collection_property"
check_describe_database_property = "check_describe_database_property"
check_insert_result = "check_insert_result"
check_collection_fields_properties = "check_collection_fields_properties"

Expand Down
Loading

0 comments on commit a5217e9

Please sign in to comment.