collection_wrapper.py 9.2 KB
Newer Older
紫晴 已提交
1 2 3 4 5
import sys

sys.path.append("..")
from check.param_check import *
from check.func_check import *
Y
yanliang567 已提交
6
from utils.api_request import api_request
紫晴 已提交
7 8


9
class ApiCollectionWrapper:
紫晴 已提交
10 11
    collection = None

B
binbin 已提交
12
    def init_collection(self, name, schema=None, check_task=None, check_items=None, **kwargs):
紫晴 已提交
13 14
        """ In order to distinguish the same name of collection """
        func_name = sys._getframe().f_code.co_name
B
binbin 已提交
15
        res, is_succ = api_request([Collection, name, schema], **kwargs)
Y
yanliang567 已提交
16
        self.collection = res if is_succ else None
17
        check_result = ResponseChecker(res, func_name, check_task, check_items, is_succ,
B
binbin 已提交
18
                                       name=name, schema=schema, **kwargs).run()
紫晴 已提交
19 20
        return res, check_result

21
    @property
22
    def schema(self, check_task=None, check_items=None):
23 24 25
        return self.collection.schema
        # func_name = sys._getframe().f_code.co_name
        # res, check = func_req([self.collection.schema])
26
        # check_result = CheckFunc(res, func_name, check_task, check_items, check).run()
27
        # return res, check_result
紫晴 已提交
28

29
    @property
30
    def description(self, check_task=None, check_items=None):
31 32 33
        return self.collection.description
        # func_name = sys._getframe().f_code.co_name
        # res, check = func_req([self.collection.description])
34
        # check_result = CheckFunc(res, func_name, check_task, check_items, check).run()
35
        # return res, check_result
紫晴 已提交
36

37
    @property
38
    def name(self, check_task=None, check_items=None):
39 40 41
        return self.collection.name
        # func_name = sys._getframe().f_code.co_name
        # res, check = func_req([self.collection.name])
42
        # check_result = CheckFunc(res, func_name, check_task, check_items, check).run()
43
        # return res, check_result
紫晴 已提交
44

45
    @property
46
    def is_empty(self, check_task=None, check_items=None):
47 48 49
        return self.collection.is_empty
        # func_name = sys._getframe().f_code.co_name
        # res, check = func_req([self.collection.is_empty])
50
        # check_result = CheckFunc(res, func_name, check_task, check_items, check).run()
51
        # return res, check_result
紫晴 已提交
52

53
    @property
54
    def num_entities(self, check_task=None, check_items=None):
55 56 57
        return self.collection.num_entities
        # func_name = sys._getframe().f_code.co_name
        # res, check = func_req([self.collection.num_entities])
58
        # check_result = CheckFunc(res, func_name, check_task, check_items, check).run()
59
        # return res, check_result
紫晴 已提交
60

61
    @property
62
    def primary_field(self, check_task=None, check_items=None):
63 64 65
        return self.collection.primary_field
        # func_name = sys._getframe().f_code.co_name
        # res, check = func_req([self.collection.primary_field])
66
        # check_result = CheckFunc(res, func_name, check_task, check_items, check).run()
67
        # return res, check_result
紫晴 已提交
68

69
    def drop(self, check_task=None, check_items=None, **kwargs):
B
binbin 已提交
70
        log.info("Dropping collection")
紫晴 已提交
71
        func_name = sys._getframe().f_code.co_name
72
        res, check = api_request([self.collection.drop], **kwargs)
73
        check_result = ResponseChecker(res, func_name, check_task, check_items, check, **kwargs).run()
B
binbin 已提交
74 75 76 77
        if check_result:
            log.info("Dropped collection")
        else:
            log.info("Dropping collection failed")
紫晴 已提交
78 79
        return res, check_result

80
    def load(self, partition_names=None, check_task=None, check_items=None, **kwargs):
B
binbin 已提交
81
        log.info("loading data")
紫晴 已提交
82
        func_name = sys._getframe().f_code.co_name
83 84
        res, check = api_request([self.collection.load, partition_names], **kwargs)
        check_result = ResponseChecker(res, func_name, check_task, check_items, check,
85
                                       partition_names=partition_names, **kwargs).run()
B
binbin 已提交
86 87 88 89
        if check_result:
            log.info("loaded data")
        else:
            log.info("loading failed")
紫晴 已提交
90 91
        return res, check_result

92
    def release(self, check_task=None, check_items=None, **kwargs):
紫晴 已提交
93
        func_name = sys._getframe().f_code.co_name
94
        res, check = api_request([self.collection.release], **kwargs)
95 96
        check_result = ResponseChecker(res, func_name, check_task,
                                       check_items, check, **kwargs).run()
紫晴 已提交
97 98
        return res, check_result

99
    def insert(self, data, partition_name=None, check_task=None, check_items=None, **kwargs):
紫晴 已提交
100
        func_name = sys._getframe().f_code.co_name
101
        res, check = api_request([self.collection.insert, data, partition_name], **kwargs)
102
        check_result = ResponseChecker(res, func_name, check_task, check_items, check,
103 104
                                       dat=data, partition_name=partition_name,
                                       **kwargs).run()
紫晴 已提交
105 106
        return res, check_result

107 108
    def search(self, data, anns_field, param, limit, expression,
               partition_names=None, output_fields=None, timeout=None,
109
               check_task=None, check_items=None, **kwargs):
紫晴 已提交
110
        func_name = sys._getframe().f_code.co_name
111
        res, check = api_request([self.collection.search, data, anns_field, param, limit, expression, partition_names,
紫晴 已提交
112
                               output_fields, timeout], **kwargs)
113
        check_result = ResponseChecker(res, func_name, check_task, check_items, check,
114 115 116 117
                                       data=data, anns_field=anns_field, param=param, limit=limit,
                                       expression=expression, partition_names=partition_names,
                                       output_fields=output_fields,
                                       timeout=timeout, **kwargs).run()
紫晴 已提交
118 119
        return res, check_result

120
    @property
121
    def partitions(self, check_task=None, check_items=None):
122 123 124
        return self.collection.partitions
        # func_name = sys._getframe().f_code.co_name
        # res, check = func_req([self.collection.partitions])
125
        # check_result = CheckFunc(res, func_name, check_task, check_items, check).run()
126
        # return res, check_result
紫晴 已提交
127

128
    def partition(self, partition_name, check_task=None, check_items=None):
紫晴 已提交
129
        func_name = sys._getframe().f_code.co_name
Y
yanliang567 已提交
130
        res, succ = api_request([self.collection.partition, partition_name])
131
        check_result = ResponseChecker(res, func_name, check_task, check_items,
Y
yanliang567 已提交
132
                                       succ, partition_name=partition_name).run()
紫晴 已提交
133 134
        return res, check_result

135
    def has_partition(self, partition_name, check_task=None, check_items=None):
紫晴 已提交
136
        func_name = sys._getframe().f_code.co_name
Y
yanliang567 已提交
137
        res, succ = api_request([self.collection.has_partition, partition_name])
138
        check_result = ResponseChecker(res, func_name, check_task, check_items,
Y
yanliang567 已提交
139
                                       succ, partition_name=partition_name).run()
紫晴 已提交
140 141
        return res, check_result

142
    def drop_partition(self, partition_name, check_task=None, check_items=None, **kwargs):
紫晴 已提交
143
        func_name = sys._getframe().f_code.co_name
144
        res, check = api_request([self.collection.drop_partition, partition_name], **kwargs)
145
        check_result = ResponseChecker(res, func_name, check_task, check_items, check, partition_name=partition_name, **kwargs).run()
紫晴 已提交
146 147
        return res, check_result

B
binbin 已提交
148 149 150 151 152 153 154
    def create_partition(self, partition_name, check_task=None, check_items=None, **kwargs):
        func_name = sys._getframe().f_code.co_name
        res, check = api_request([self.collection.create_partition, partition_name], **kwargs)
        check_result = ResponseChecker(res, func_name, check_task, check_items, check,
                                       partition_name=partition_name, **kwargs).run()
        return res, check_result

155
    @property
156
    def indexes(self, check_task=None, check_items=None):
157 158 159
        return self.collection.indexes
        # func_name = sys._getframe().f_code.co_name
        # res, check = func_req([self.collection.indexes])
160
        # check_result = CheckFunc(res, func_name, check_task, check_items, check).run()
161
        # return res, check_result
紫晴 已提交
162

163
    def index(self, check_task=None, check_items=None):
紫晴 已提交
164
        func_name = sys._getframe().f_code.co_name
165 166
        res, check = api_request([self.collection.index])
        check_result = ResponseChecker(res, func_name, check_task, check_items, check).run()
紫晴 已提交
167 168
        return res, check_result

169
    def create_index(self, field_name, index_params, check_task=None, check_items=None, **kwargs):
紫晴 已提交
170
        func_name = sys._getframe().f_code.co_name
171 172 173
        res, check = api_request([self.collection.create_index, field_name, index_params], **kwargs)
        check_result = ResponseChecker(res, func_name, check_task, check_items, check,
                                       field_name=field_name, index_params=index_params, **kwargs).run()
紫晴 已提交
174 175
        return res, check_result

176
    def has_index(self, check_task=None, check_items=None):
紫晴 已提交
177
        func_name = sys._getframe().f_code.co_name
178 179
        res, check = api_request([self.collection.has_index])
        check_result = ResponseChecker(res, func_name, check_task, check_items, check).run()
紫晴 已提交
180 181
        return res, check_result

182
    def drop_index(self, check_task=None, check_items=None, **kwargs):
紫晴 已提交
183
        func_name = sys._getframe().f_code.co_name
184 185
        res, check = api_request([self.collection.drop_index], **kwargs)
        check_result = ResponseChecker(res, func_name, check_task, check_items, check, **kwargs).run()
紫晴 已提交
186
        return res, check_result