def test_bulk_insert_async_with_collection_non_exist( self, connect, hvcollection, dim): collection = hvcollection + "_c1" vectors = records_factory(dim, 1) integers = integer_factory(1) entities = [{ "name": "Vec", "values": vectors }, { "name": "Int", "values": integers }] with pytest.raises(BaseError): future = connect.bulk_insert(collection, entities, _async=True) future.result() entities = [{ "name": "Vec", "values": vectors, "type": DataType.FLOAT_VECTOR }, { "name": "Int", "values": integers, "type": DataType.INT64 }] future = connect.bulk_insert(collection, entities, _async=True) with pytest.raises(BaseError): future.result()
def test_bulk_insert_with_wrong_scalar_type_then_correct_type( self, connect, hvcollection, dim): vectors = records_factory(dim, 10000) integers = integer_factory(10000) entities = [{ "name": "Vec", "values": vectors, "type": DataType.FLOAT_VECTOR }, { "name": "Int", "values": integers, "type": DataType.FLOAT }] with pytest.raises(BaseError): connect.bulk_insert(hvcollection, entities) entities = [{ "name": "Vec", "values": vectors, "type": DataType.FLOAT_VECTOR }, { "name": "Int", "values": integers, "type": DataType.INT64 }] try: connect.bulk_insert(hvcollection, entities) except Exception as e: pytest.fail("Unexpected MyError: {}".format(str(e)))
def test_insert_with_wrong_type_data(self, connect, hvcollection, dim): vectors = records_factory(dim, 10000) integers = integer_factory(10000) entities = [{"Vec": v, "Int": i} for v, i in zip(vectors, integers)] connect.insert(hvcollection, entities)
def test_create_collection_exception(self, connect, hvcollection, dim): vectors = records_factory(dim, 1) integers = integer_factory(1) entities = [{ "name": "Vec", "values": vectors }, { "name": "Int", "values": integers }] mock_grpc_timeout = mock.MagicMock( side_effect=grpc.FutureTimeoutError()) with mock.patch.object(Uum, 'future', mock_grpc_timeout): with pytest.raises(grpc.FutureTimeoutError): connect.bulk_insert(hvcollection, entities) mock_grpc_error = mock.MagicMock(side_effect=MockGrpcError()) with mock.patch.object(Uum, 'future', mock_grpc_error): with pytest.raises(grpc.RpcError): connect.bulk_insert(hvcollection, entities) mock_exception = mock.MagicMock(side_effect=Exception("error")) with mock.patch.object(Uum, 'future', mock_exception): with pytest.raises(Exception): connect.bulk_insert(hvcollection, entities)
def test_search_multi_condition_in_single_must(self, connect, ivrecords, dim): topk = 10 xq = records_factory(dim, 10) xi = integer_factory(2) metric = "L2" dsl = { "bool": { "must": [ { "term": {"Int": xi} }, { "vector": { "Vec": {"topk": topk, "query": xq, "metric_type": metric} } } ] } } try: connect.search(ivrecords, dsl) except Exception as e: pytest.fail(f"{e}")
def test_insert_with_wrong_nonaligned_data(self, connect, hvcollection, dim): vectors = records_factory(dim, 10000) integers = integer_factory(9998) entities = [{"Vec": v, "Int": i} for v, i in zip(vectors[:9998], integers[:9998])] entities.append({"Vec": vectors[9998]}) with pytest.raises(BaseError): connect.insert(hvcollection, entities)
def ivrecords(request, connect, hvcollection, dim): vectors = records_factory(dim, 10000) integers = integer_factory(10000) entities = [ {"name": Field_Integer, "values": integers, "type": DataType.INT64}, {"name": Field_Vector, "values": vectors, "type": DataType.FLOAT_VECTOR} ] connect.insert(vcollection, entities) return hvcollection
def test_bulk_insert_normal2(self, connect, hvcollection, dim): vectors = records_factory(dim, 10000) integers = integer_factory(10000) entities = [{ "name": "Vec", "values": vectors }, { "name": "Int", "values": integers }] try: connect.bulk_insert(hvcollection, entities) except Exception as e: pytest.fail("Unexpected MyError: {}".format(str(e)))
def test_bulk_insert_with_collection_non_exist(self, connect, hvcollection, dim): collection = hvcollection + "_c1" vectors = records_factory(dim, 1) integers = integer_factory(1) entities = [{ "name": "Vec", "values": vectors }, { "name": "Int", "values": integers }] with pytest.raises(BaseError): connect.bulk_insert(collection, entities)
def test_bulk_insert_with_wrong_scalar_type(self, sd, connect, hvcollection, dim): vectors = records_factory(dim, 10000) integers = integer_factory(10000) entities = [{ "name": "Vec", "values": vectors, "type": DataType.FLOAT_VECTOR }, { "name": "Int", "values": integers, "type": sd }] with pytest.raises(BaseError): connect.bulk_insert(hvcollection, entities)
def ivirecords(request, connect, hvicollection, dim): vectors = records_factory(dim, 10000) integers = integer_factory(10000) entities = [{ "name": Field_Integer, "values": integers, "type": DataType.INT64 }, { "name": Field_Vector, "values": vectors, "type": DataType.FLOAT_VECTOR }] ids = [i for i in range(10000)] connect.bulk_insert(hvicollection, entities, ids) connect.flush([hvicollection]) return hvicollection