# import pytest
# from base.client_request import ApiReq
# from common.common_type import *
# from common.common_func import *
#
# prefix = "prefix_"
#
#
# class TestPartitionLoad(ApiReq):
#     """ Test case of partition load interface """
#
#     @pytest.mark.tags(CaseLabel.L1)
#     @pytest.mark.parametrize("fields", [
#         [],
#         ["filed_nonexistent"],
#         [default_int64_field_name],
#         [default_float_vec_field_name],
#         [default_int64_field_name, default_float_vec_field_name],
#         ["non_vector_field1", "non_vector_field2", "vector_field1", "vector_field2"]
#     ])
#     @pytest.mark.parametrize("indexes", [
#         [],
#         ["index_nonexistent"],
#         ["index1_default_int64_field_name"],
#         ["index_default_float_vec_field_name"],
#         ["index1_default_int64_field_name", "index2_default_float_vec_field_name"],
#         ["non_vector_index1", "non_vector_index2", "vector_index1", "vector_index2"]
#     ])
#     def test_partition_load_fields_and_indexes(self, fields, indexes):
#         """
#         target: verify load a partition with field and index
#         method: 1. create a collection with multi-fields and indexes
#                 2. create a partition and insert some data
#                 3. create index
#                 4. partition.load(fields, indexes)
#         expected: 1. load all fields and no indexes
#         """
#         """
#         m_collection = self._collection()
#         p_name = gen_unique_str(prefix)
#         m_partition, _ = self.partition.partition_init(m_collection, p_name)
#         # TODO: insert some data and flush
#         # m_partition.insert()
#         # m_collection.flush()
#         for i in range(len(indexes)):
#             m_collection.create_index(default_float_vec_field_name,
#                                       gen_simple_index()[i], index_name=indexes[i])
#         m_partition.load(field_names=fields, index_names=indexes)
#         # TODO: verify fields and indexes loaded accordingly
#         """
#         pass
#
#     @pytest.mark.tags(CaseLabel.L1)
#     def test_partition_load_only_non_vector(self):
#         """
#         target: verify load only a non vector field
#         method: 1. create a collection with multi-fields and indexes
#                 2. create a partition and insert some data
#                 3. create index
#                 4. partition.load(non_vector_field, none)
#         expected: 1. load all fields and no indexes
#         """
#         pass  # maybe covered by test_partition_load_fields_and_indexes
#
#     @pytest.mark.tags(CaseLabel.L1)
#     @pytest.mark.parametrize("indexed", [True, False])
#     @pytest.mark.parametrize("index_param", gen_simple_index())
#     def test_partition_load_empty_partition(self, indexed, index_param):
#         """
#         target: verify load an empty partition
#         method: 1.create an empty partition
#                 2. load the partition
#         expected: load successfully?
#         """
#         m_collection = self._collection()
#         p_name = gen_unique_str(prefix)
#         m_partition, _ = self.partition.partition_init(m_collection, p_name)
#         assert m_partition.is_empty
#         if indexed:
#             index_name = gen_unique_str()
#             m_collection.create_index(default_float_vec_field_name,
#                                       index_param,
#                                       index_name=index_name)
#             m_partition.load(default_float_vec_field_name, index_name)
#         else:
#             m_partition.load(default_float_vec_field_name)
#         # TODO: assert load successfully, but no data actually loaded
#
#     @pytest.mark.tags(CaseLabel.L1)
#     def test_partition_load_dropped_partition(self):
#         """
#         target: verify load an dropped partition
#         method: 1.create a partition
#                 2. drop the partition
#                 3. load the partition
#         expected: raise exception
#         """
#         m_partition = self._partition()
#         m_partition.load()
#         m_partition.drop()
#         with pytest.raises(Exception) as e:
#             m_partition.load()
#             # TODO assert the error code
#
#     @pytest.mark.tags(CaseLabel.L1)
#     def test_partition_load_dropped_collection(self):
#         """
#         target: verify load an dropped collection
#         method: 1.create a collection and partition
#                 2. drop the collection
#                 3. load the partition
#         expected: raise exception
#         """
#         m_collection = self._collection()
#         p_name = gen_unique_str(prefix)
#         m_partition, _ = self.partition.partition_init(m_collection, p_name)
#         assert m_collection.has_partition(p_name)
#         m_collection.drop()
#         with pytest.raises(Exception) as e:
#             m_partition.load()
#             # TODO assert the error code
#
#     @pytest.mark.tags(CaseLabel.L2)
#     def test_partition_load_maximum_memory(self):
#         """
#         target: verify load many partitions that exceed the memory
#         method: 1.create a collection and many partitions
#                 2. insert huge amounts of data into partitions
#                 3. load the partitions
#         expected: raise exception
#         """
#         pass
#
#     @pytest.mark.tags(CaseLabel.L1)
#     def test_partition_load_partition_twice(self):
#         """
#         target: verify load the same partition twice
#         method: 1.create a partition
#                 2. insert some data into the partition
#                 3. load the partition
#                 4. load the partition again
#         expected: both loading succeed, no more memory consumed at 2nd load
#         """
#         m_partition = self._partition()
#         m_partition.insert(gen_default_list_data())
#         m_partition.load()
#         # TODO: assert load successfully
#         m_partition.load()
#         # TODO: assert no more memory consumed
#
#
# class TestCollectionLoad(ApiReq):
#     """ Test case of collection load interface """
#
#     @pytest.mark.tags(CaseLabel.L3)
#     def test_case(self):
#         log.info("Test case of load interface")

# import pytest
# from base.client_request import ApiReq
# from common.common_type import *
# from common.common_func import *
#
# prefix = "prefix_"
#
#
# class TestPartitionLoad(ApiReq):
#     """ Test case of partition load interface """
#
#     @pytest.mark.tags(CaseLabel.L1)
#     @pytest.mark.parametrize("fields", [
#         [],
#         ["filed_nonexistent"],
#         [default_int64_field_name],
#         [default_float_vec_field_name],
#         [default_int64_field_name, default_float_vec_field_name],
#         ["non_vector_field1", "non_vector_field2", "vector_field1", "vector_field2"]
#     ])
#     @pytest.mark.parametrize("indexes", [
#         [],
#         ["index_nonexistent"],
#         ["index1_default_int64_field_name"],
#         ["index_default_float_vec_field_name"],
#         ["index1_default_int64_field_name", "index2_default_float_vec_field_name"],
#         ["non_vector_index1", "non_vector_index2", "vector_index1", "vector_index2"]
#     ])
#     def test_partition_load_fields_and_indexes(self, fields, indexes):
#         """
#         target: verify load a partition with field and index
#         method: 1. create a collection with multi-fields and indexes
#                 2. create a partition and insert some data
#                 3. create index
#                 4. partition.load(fields, indexes)
#         expected: 1. load all fields and no indexes
#         """
#         """
#         m_collection = self._collection()
#         p_name = gen_unique_str(prefix)
#         m_partition, _ = self.partition.partition_init(m_collection, p_name)
#         # TODO: insert some data and flush
#         # m_partition.insert()
#         # m_collection.flush()
#         for i in range(len(indexes)):
#             m_collection.create_index(default_float_vec_field_name,
#                                       gen_simple_index()[i], index_name=indexes[i])
#         m_partition.load(field_names=fields, index_names=indexes)
#         # TODO: verify fields and indexes loaded accordingly
#         """
#         pass
#
#     @pytest.mark.tags(CaseLabel.L1)
#     def test_partition_load_only_non_vector(self):
#         """
#         target: verify load only a non vector field
#         method: 1. create a collection with multi-fields and indexes
#                 2. create a partition and insert some data
#                 3. create index
#                 4. partition.load(non_vector_field, none)
#         expected: 1. load all fields and no indexes
#         """
#         pass  # maybe covered by test_partition_load_fields_and_indexes
#
#     @pytest.mark.tags(CaseLabel.L1)
#     @pytest.mark.parametrize("indexed", [True, False])
#     @pytest.mark.parametrize("index_param", gen_simple_index())
#     def test_partition_load_empty_partition(self, indexed, index_param):
#         """
#         target: verify load an empty partition
#         method: 1.create an empty partition
#                 2. load the partition
#         expected: load successfully?
#         """
#         m_collection = self._collection()
#         p_name = gen_unique_str(prefix)
#         m_partition, _ = self.partition.partition_init(m_collection, p_name)
#         assert m_partition.is_empty
#         if indexed:
#             index_name = gen_unique_str()
#             m_collection.create_index(default_float_vec_field_name,
#                                       index_param,
#                                       index_name=index_name)
#             m_partition.load(default_float_vec_field_name, index_name)
#         else:
#             m_partition.load(default_float_vec_field_name)
#         # TODO: assert load successfully, but no data actually loaded
#
#     @pytest.mark.tags(CaseLabel.L1)
#     def test_partition_load_dropped_partition(self):
#         """
#         target: verify load an dropped partition
#         method: 1.create a partition
#                 2. drop the partition
#                 3. load the partition
#         expected: raise exception
#         """
#         m_partition = self._partition()
#         m_partition.load()
#         m_partition.drop()
#         with pytest.raises(Exception) as e:
#             m_partition.load()
#             # TODO assert the error code
#
#     @pytest.mark.tags(CaseLabel.L1)
#     def test_partition_load_dropped_collection(self):
#         """
#         target: verify load an dropped collection
#         method: 1.create a collection and partition
#                 2. drop the collection
#                 3. load the partition
#         expected: raise exception
#         """
#         m_collection = self._collection()
#         p_name = gen_unique_str(prefix)
#         m_partition, _ = self.partition.partition_init(m_collection, p_name)
#         assert m_collection.has_partition(p_name)
#         m_collection.drop()
#         with pytest.raises(Exception) as e:
#             m_partition.load()
#             # TODO assert the error code
#
#     @pytest.mark.tags(CaseLabel.L2)
#     def test_partition_load_maximum_memory(self):
#         """
#         target: verify load many partitions that exceed the memory
#         method: 1.create a collection and many partitions
#                 2. insert huge amounts of data into partitions
#                 3. load the partitions
#         expected: raise exception
#         """
#         pass
#
#     @pytest.mark.tags(CaseLabel.L1)
#     def test_partition_load_partition_twice(self):
#         """
#         target: verify load the same partition twice
#         method: 1.create a partition
#                 2. insert some data into the partition
#                 3. load the partition
#                 4. load the partition again
#         expected: both loading succeed, no more memory consumed at 2nd load
#         """
#         m_partition = self._partition()
#         m_partition.insert(gen_default_list_data())
#         m_partition.load()
#         # TODO: assert load successfully
#         m_partition.load()
#         # TODO: assert no more memory consumed
#
#
# class TestCollectionLoad(ApiReq):
#     """ Test case of collection load interface """
#
#     @pytest.mark.tags(CaseLabel.L3)
#     def test_case(self):
#         log.info("Test case of load interface")

# import pytest # from base.client_request import ApiReq # from common.common_type import * # from common.common_func import * # # prefix = "prefix_" # # # class TestPartitionLoad(ApiReq): #     """ Test case of partition load interface """ # #     @pytest.mark.tags(CaseLabel.L1) #     @pytest.mark.parametrize("fields", [ #         [], #         ["filed_nonexistent"], #         [default_int64_field_name], #         [default_float_vec_field_name], #         [default_int64_field_name, default_float_vec_field_name], #         ["non_vector_field1", "non_vector_field2", "vector_field1", "vector_field2"] #     ]) #     @pytest.mark.parametrize("indexes", [ #         [], #         ["index_nonexistent"], #         ["index1_default_int64_field_name"], #         ["index_default_float_vec_field_name"], #         ["index1_default_int64_field_name", "index2_default_float_vec_field_name"], #         ["non_vector_index1", "non_vector_index2", "vector_index1", "vector_index2"] #     ]) #     def test_partition_load_fields_and_indexes(self, fields, indexes): #         """ #         target: verify load a partition with field and index #         method: 1. create a collection with multi-fields and indexes #                 2. create a partition and insert some data #                 3. create index #                 4. partition.load(fields, indexes) #         expected: 1. load all fields and no indexes #         """ #         """ #         m_collection = self._collection() #         p_name = gen_unique_str(prefix) #         m_partition, _ = self.partition.partition_init(m_collection, p_name) #         # TODO: insert some data and flush #         # m_partition.insert() #         # m_collection.flush() #         for i in range(len(indexes)): #             m_collection.create_index(default_float_vec_field_name, #                                       gen_simple_index()[i], index_name=indexes[i]) #         m_partition.load(field_names=fields, index_names=indexes) #         # TODO: verify fields and indexes loaded accordingly #         """ #         pass # #     @pytest.mark.tags(CaseLabel.L1) #     def test_partition_load_only_non_vector(self): #         """ #         target: verify load only a non vector field #         method: 1. create a collection with multi-fields and indexes #                 2. create a partition and insert some data #                 3. create index #                 4. partition.load(non_vector_field, none) #         expected: 1. load all fields and no indexes #         """ #         pass  # maybe covered by test_partition_load_fields_and_indexes # #     @pytest.mark.tags(CaseLabel.L1) #     @pytest.mark.parametrize("indexed", [True, False]) #     @pytest.mark.parametrize("index_param", gen_simple_index()) #     def test_partition_load_empty_partition(self, indexed, index_param): #         """ #         target: verify load an empty partition #         method: 1.create an empty partition #                 2. load the partition #         expected: load successfully? #         """ #         m_collection = self._collection() #         p_name = gen_unique_str(prefix) #         m_partition, _ = self.partition.partition_init(m_collection, p_name) #         assert m_partition.is_empty #         if indexed: #             index_name = gen_unique_str() #             m_collection.create_index(default_float_vec_field_name, #                                       index_param, #                                       index_name=index_name) #             m_partition.load(default_float_vec_field_name, index_name) #         else: #             m_partition.load(default_float_vec_field_name) #         # TODO: assert load successfully, but no data actually loaded # #     @pytest.mark.tags(CaseLabel.L1) #     def test_partition_load_dropped_partition(self): #         """ #         target: verify load an dropped partition #         method: 1.create a partition #                 2. drop the partition #                 3. load the partition #         expected: raise exception #         """ #         m_partition = self._partition() #         m_partition.load() #         m_partition.drop() #         with pytest.raises(Exception) as e: #             m_partition.load() #             # TODO assert the error code # #     @pytest.mark.tags(CaseLabel.L1) #     def test_partition_load_dropped_collection(self): #         """ #         target: verify load an dropped collection #         method: 1.create a collection and partition #                 2. drop the collection #                 3. load the partition #         expected: raise exception #         """ #         m_collection = self._collection() #         p_name = gen_unique_str(prefix) #         m_partition, _ = self.partition.partition_init(m_collection, p_name) #         assert m_collection.has_partition(p_name) #         m_collection.drop() #         with pytest.raises(Exception) as e: #             m_partition.load() #             # TODO assert the error code # #     @pytest.mark.tags(CaseLabel.L2) #     def test_partition_load_maximum_memory(self): #         """ #         target: verify load many partitions that exceed the memory #         method: 1.create a collection and many partitions #                 2. insert huge amounts of data into partitions #                 3. load the partitions #         expected: raise exception #         """ #         pass # #     @pytest.mark.tags(CaseLabel.L1) #     def test_partition_load_partition_twice(self): #         """ #         target: verify load the same partition twice #         method: 1.create a partition #                 2. insert some data into the partition #                 3. load the partition #                 4. load the partition again #         expected: both loading succeed, no more memory consumed at 2nd load #         """ #         m_partition = self._partition() #         m_partition.insert(gen_default_list_data()) #         m_partition.load() #         # TODO: assert load successfully #         m_partition.load() #         # TODO: assert no more memory consumed # # # class TestCollectionLoad(ApiReq): #     """ Test case of collection load interface """ # #     @pytest.mark.tags(CaseLabel.L3) #     def test_case(self): #         log.info("Test case of load interface")