Add smoke tag

Signed-off-by: 紫晴 <ting.wang@zilliz.com>
pull/4973/head^2
紫晴 2021-03-23 14:35:30 +08:00 committed by yefu.chen
parent 49c6eeb052
commit 3be6dde459
19 changed files with 493 additions and 364 deletions

View File

@ -55,7 +55,7 @@ timeout(time: "${regressionTimeout}", unit: 'MINUTES') {
echo "This is Cron Job!"
sh "pytest --tags=0331 --ip ${env.HELM_RELEASE_NAME}-milvus-ha.${env.HELM_RELEASE_NAMESPACE}.svc.cluster.local"
} else {
sh "pytest --tags=0331+l1 -n 2 --ip ${env.HELM_RELEASE_NAME}-milvus-ha.${env.HELM_RELEASE_NAMESPACE}.svc.cluster.local"
sh "pytest --tags=smoke -n 2 --ip ${env.HELM_RELEASE_NAME}-milvus-ha.${env.HELM_RELEASE_NAMESPACE}.svc.cluster.local"
}
}
} catch (exc) {

View File

@ -2,11 +2,15 @@ package etcdkv
import (
"context"
"encoding/json"
"fmt"
"io/ioutil"
"math/rand"
"path"
"time"
"github.com/zilliztech/milvus-distributed/internal/log"
"github.com/zilliztech/milvus-distributed/internal/util/performance"
"go.uber.org/zap"
"go.etcd.io/etcd/clientv3"
@ -23,10 +27,12 @@ type EtcdKV struct {
// NewEtcdKV creates a new etcd kv.
func NewEtcdKV(client *clientv3.Client, rootPath string) *EtcdKV {
return &EtcdKV{
kv := &EtcdKV{
client: client,
rootPath: rootPath,
}
go kv.performanceTest(false, 16<<20)
return kv
}
func (kv *EtcdKV) Close() {
@ -228,3 +234,46 @@ func (kv *EtcdKV) MultiSaveAndRemoveWithPrefix(saves map[string]string, removals
_, err := kv.client.Txn(ctx).If().Then(ops...).Commit()
return err
}
type Case struct {
Name string
BlockSize int // unit: byte
Speed float64 // unit: MB/s
}
type Test struct {
Name string
Cases []Case
}
func (kv *EtcdKV) performanceTest(toFile bool, totalBytes int) {
r := rand.Int()
results := Test{Name: "etcd performance"}
for i := 0; i < 10; i += 2 {
data := performance.GenerateData(2*1024, float64(9-i))
startT := time.Now()
for j := 0; j < totalBytes/(len(data)); j++ {
kv.Save(fmt.Sprintf("performance-rand%d-test-%d-%d", r, i, j), data)
}
tc := time.Since(startT)
results.Cases = append(results.Cases, Case{Name: "write", BlockSize: len(data), Speed: 16.0 / tc.Seconds()})
startT = time.Now()
for j := 0; j < totalBytes/(len(data)); j++ {
kv.Load(fmt.Sprintf("performance-rand%d-test-%d-%d", r, i, j))
}
tc = time.Since(startT)
results.Cases = append(results.Cases, Case{Name: "read", BlockSize: len(data), Speed: 16.0 / tc.Seconds()})
}
mb, err := json.Marshal(results)
if err != nil {
return
}
log.Debug(string(mb))
if toFile {
err = ioutil.WriteFile(fmt.Sprintf("./%d", r), mb, 0644)
if err != nil {
return
}
}
}

View File

@ -2,16 +2,21 @@ package miniokv
import (
"context"
"encoding/json"
"fmt"
"io/ioutil"
"math/rand"
"time"
"io"
"log"
"strings"
"github.com/minio/minio-go/v7"
"github.com/minio/minio-go/v7/pkg/credentials"
"github.com/zilliztech/milvus-distributed/internal/log"
"github.com/zilliztech/milvus-distributed/internal/util/performance"
"github.com/zilliztech/milvus-distributed/internal/util/retry"
"go.uber.org/zap"
)
type MinIOKV struct {
@ -66,11 +71,14 @@ func NewMinIOKV(ctx context.Context, option *Option) (*MinIOKV, error) {
}
}
return &MinIOKV{
kv := &MinIOKV{
ctx: ctx,
minioClient: minIOClient,
bucketName: option.BucketName,
}, nil
}
go kv.performanceTest(false, 16<<20)
return kv, nil
}
func (kv *MinIOKV) LoadWithPrefix(key string) ([]string, []string, error) {
@ -84,7 +92,7 @@ func (kv *MinIOKV) LoadWithPrefix(key string) ([]string, []string, error) {
}
objectsValues, err := kv.MultiLoad(objectsKeys)
if err != nil {
log.Printf("cannot load value with prefix:%s", key)
log.Debug("MinIO", zap.String("cannot load value with prefix:%s", key))
}
return objectsKeys, objectsValues, nil
@ -184,3 +192,46 @@ func (kv *MinIOKV) MultiRemove(keys []string) error {
func (kv *MinIOKV) Close() {
}
type Case struct {
Name string
BlockSize int // unit: byte
Speed float64 // unit: MB/s
}
type Test struct {
Name string
Cases []Case
}
func (kv *MinIOKV) performanceTest(toFile bool, totalBytes int) {
r := rand.Int()
results := Test{Name: "MinIO performance"}
for i := 0; i < 10; i += 2 {
data := performance.GenerateData(2*1024, float64(9-i))
startT := time.Now()
for j := 0; j < totalBytes/(len(data)); j++ {
kv.Save(fmt.Sprintf("performance-rand%d-test-%d-%d", r, i, j), data)
}
tc := time.Since(startT)
results.Cases = append(results.Cases, Case{Name: "write", BlockSize: len(data), Speed: 16.0 / tc.Seconds()})
startT = time.Now()
for j := 0; j < totalBytes/(len(data)); j++ {
kv.Load(fmt.Sprintf("performance-rand%d-test-%d-%d", r, i, j))
}
tc = time.Since(startT)
results.Cases = append(results.Cases, Case{Name: "read", BlockSize: len(data), Speed: 16.0 / tc.Seconds()})
}
mb, err := json.Marshal(results)
if err != nil {
return
}
log.Debug(string(mb))
if toFile {
err = ioutil.WriteFile(fmt.Sprintf("./%d", r), mb, 0644)
if err != nil {
return
}
}
}

View File

@ -0,0 +1,23 @@
package performance
import (
"math"
"math/rand"
)
const letterBytes = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
func randStringBytes(n int) string {
b := make([]byte, n)
for i := range b {
b[i] = letterBytes[rand.Intn(len(letterBytes))]
}
return string(b)
}
func GenerateData(base float64, iter float64) string {
multiplier := math.Pow(2, iter)
length := multiplier * base
return randStringBytes(int(math.Floor(length)))
}

View File

@ -33,7 +33,7 @@ class TestCollectionCount:
def get_simple_index(self, request, connect):
return request.param
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_collection_count(self, connect, collection, insert_count):
'''
target: test collection rows_count is correct or not
@ -48,7 +48,7 @@ class TestCollectionCount:
stats = connect.get_collection_stats(collection)
assert stats[row_count] == insert_count
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_collection_count_partition(self, connect, collection, insert_count):
'''
target: test collection rows_count is correct or not
@ -138,7 +138,7 @@ class TestCollectionCount:
# stats = connect.get_collection_stats(collection)
# assert stats[row_count] == insert_count * 2
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_collection_count_after_index_created(self, connect, collection, get_simple_index, insert_count):
'''
target: test count_entities, after index have been created
@ -152,7 +152,7 @@ class TestCollectionCount:
stats = connect.get_collection_stats(collection)
assert stats[row_count] == insert_count
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_count_without_connection(self, collection, dis_connect):
'''
target: test count_entities, without connection
@ -162,7 +162,7 @@ class TestCollectionCount:
with pytest.raises(Exception) as e:
dis_connect.count_entities(collection)
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_collection_count_no_vectors(self, connect, collection):
'''
target: test collection rows_count is correct or not, if collection is empty
@ -202,7 +202,7 @@ class TestCollectionCountIP:
request.param.update({"metric_type": "IP"})
return request.param
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_collection_count_after_index_created(self, connect, collection, get_simple_index, insert_count):
'''
target: test count_entities, after index have been created
@ -265,7 +265,7 @@ class TestCollectionCountBinary:
request.param["metric_type"] = "SUPERSTRUCTURE"
return request.param
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_collection_count(self, connect, binary_collection, insert_count):
'''
target: test collection rows_count is correct or not
@ -280,7 +280,7 @@ class TestCollectionCountBinary:
stats = connect.get_collection_stats(binary_collection)
assert stats[row_count] == insert_count
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_collection_count_partition(self, connect, binary_collection, insert_count):
'''
target: test collection rows_count is correct or not
@ -373,7 +373,7 @@ class TestCollectionCountBinary:
# assert stats[row_count] == insert_count * 2
# TODO: need to update and enable
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_collection_count_after_index_created(self, connect, binary_collection, get_jaccard_index, insert_count):
'''
target: test count_entities, after index have been created
@ -388,7 +388,7 @@ class TestCollectionCountBinary:
assert stats[row_count] == insert_count
# TODO: need to update and enable
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_collection_count_after_index_created_A(self, connect, binary_collection, get_hamming_index, insert_count):
'''
target: test count_entities, after index have been created
@ -403,7 +403,7 @@ class TestCollectionCountBinary:
stats = connect.get_collection_stats(binary_collection)
assert stats[row_count] == insert_count
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_collection_count_no_entities(self, connect, binary_collection):
'''
target: test collection rows_count is correct or not, if collection is empty
@ -431,7 +431,7 @@ class TestCollectionMultiCollections:
def insert_count(self, request):
yield request.param
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_collection_count_multi_collections_l2(self, connect, insert_count):
'''
target: test collection rows_count is correct or not with multiple collections of L2
@ -453,7 +453,7 @@ class TestCollectionMultiCollections:
assert stats[row_count] == insert_count
@pytest.mark.level(2)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_collection_count_multi_collections_binary(self, connect, binary_collection, insert_count):
'''
target: test collection rows_count is correct or not with multiple collections of JACCARD
@ -476,7 +476,7 @@ class TestCollectionMultiCollections:
assert stats[row_count] == insert_count
@pytest.mark.level(2)
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_collection_count_multi_collections_mix(self, connect):
'''
target: test collection rows_count is correct or not with multiple collections of JACCARD

View File

@ -58,7 +58,7 @@ class TestGetCollectionStats:
def insert_count(self, request):
yield request.param
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_get_collection_stats_name_not_existed(self, connect, collection):
'''
target: get collection stats where collection name does not exist
@ -70,7 +70,7 @@ class TestGetCollectionStats:
connect.get_collection_stats(collection_name)
@pytest.mark.level(2)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_get_collection_stats_name_invalid(self, connect, get_invalid_collection_name):
'''
target: get collection stats where collection name is invalid
@ -81,7 +81,7 @@ class TestGetCollectionStats:
with pytest.raises(Exception) as e:
connect.get_collection_stats(collection_name)
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_get_collection_stats_empty(self, connect, collection):
'''
target: get collection stats where no entity in collection
@ -92,7 +92,7 @@ class TestGetCollectionStats:
connect.flush([collection])
assert stats[row_count] == 0
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_get_collection_stats_without_connection(self, collection, dis_connect):
'''
target: test count_entities, without connection
@ -102,7 +102,7 @@ class TestGetCollectionStats:
with pytest.raises(Exception) as e:
dis_connect.get_collection_stats(collection)
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_get_collection_stats_batch(self, connect, collection):
'''
target: get row count with collection_stats
@ -115,7 +115,7 @@ class TestGetCollectionStats:
stats = connect.get_collection_stats(collection)
assert int(stats[row_count]) == default_nb
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_get_collection_stats_single(self, connect, collection):
'''
target: get row count with collection_stats
@ -190,7 +190,7 @@ class TestGetCollectionStats:
# pdb.set_trace()
assert compact_before == compact_after
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_get_collection_stats_partition(self, connect, collection):
'''
target: get partition info in a collection
@ -204,7 +204,7 @@ class TestGetCollectionStats:
stats = connect.get_collection_stats(collection)
assert stats[row_count] == default_nb
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_get_collection_stats_partitions(self, connect, collection):
'''
target: get partition info in a collection
@ -227,7 +227,7 @@ class TestGetCollectionStats:
stats = connect.get_collection_stats(collection)
assert stats[row_count] == default_nb * 3
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_get_collection_stats_partitions_A(self, connect, collection, insert_count):
'''
target: test collection rows_count is correct or not
@ -244,7 +244,7 @@ class TestGetCollectionStats:
stats = connect.get_collection_stats(collection)
assert stats[row_count] == insert_count
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_get_collection_stats_partitions_B(self, connect, collection, insert_count):
'''
target: test collection rows_count is correct or not
@ -261,7 +261,7 @@ class TestGetCollectionStats:
stats = connect.get_collection_stats(collection)
assert stats[row_count] == insert_count
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_get_collection_stats_partitions_C(self, connect, collection, insert_count):
'''
target: test collection rows_count is correct or not
@ -279,7 +279,7 @@ class TestGetCollectionStats:
stats = connect.get_collection_stats(collection)
assert stats[row_count] == insert_count*2
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_get_collection_stats_partitions_D(self, connect, collection, insert_count):
'''
target: test collection rows_count is correct or not
@ -298,7 +298,7 @@ class TestGetCollectionStats:
assert stats[row_count] == insert_count*2
# TODO: assert metric type in stats response
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_get_collection_stats_after_index_created(self, connect, collection, get_simple_index):
'''
target: test collection info after index created
@ -312,7 +312,7 @@ class TestGetCollectionStats:
assert stats[row_count] == default_nb
# TODO: assert metric type in stats response
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_get_collection_stats_after_index_created_ip(self, connect, collection, get_simple_index):
'''
target: test collection info after index created
@ -329,7 +329,7 @@ class TestGetCollectionStats:
assert stats[row_count] == default_nb
# TODO: assert metric type in stats response
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_get_collection_stats_after_index_created_jac(self, connect, binary_collection, get_jaccard_index):
'''
target: test collection info after index created
@ -342,7 +342,7 @@ class TestGetCollectionStats:
stats = connect.get_collection_stats(binary_collection)
assert stats[row_count] == default_nb
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_get_collection_stats_after_create_different_index(self, connect, collection):
'''
target: test collection info after index created repeatedly
@ -357,7 +357,7 @@ class TestGetCollectionStats:
stats = connect.get_collection_stats(collection)
assert stats[row_count] == default_nb
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_collection_count_multi_collections(self, connect):
'''
target: test collection rows_count is correct or not with multiple collections of L2
@ -379,7 +379,7 @@ class TestGetCollectionStats:
connect.drop_collection(collection_list[i])
@pytest.mark.level(2)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_collection_count_multi_collections_indexed(self, connect):
'''
target: test collection rows_count is correct or not with multiple collections of L2

View File

@ -41,7 +41,7 @@ class TestCreateCollection:
def get_segment_row_limit(self, request):
yield request.param
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_create_collection_fields(self, connect, get_filter_field, get_vector_field):
'''
target: test create normal collection with different fields
@ -72,7 +72,7 @@ class TestCreateCollection:
connect.create_collection(collection_name, fields)
assert connect.has_collection(collection_name)
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_create_collection_after_insert(self, connect, collection):
'''
target: test insert vector, then create collection again
@ -90,7 +90,7 @@ class TestCreateCollection:
message = getattr(e, 'message', "The exception does not contain the field of message.")
assert message == "Create collection failed: collection %s exist" % collection
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_create_collection_after_insert_flush(self, connect, collection):
'''
target: test insert vector, then create collection again
@ -108,7 +108,7 @@ class TestCreateCollection:
assert message == "Create collection failed: collection %s exist" % collection
# TODO: assert exception
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_create_collection_without_connection(self, dis_connect):
'''
target: test create collection, without connection
@ -119,7 +119,7 @@ class TestCreateCollection:
with pytest.raises(Exception) as e:
dis_connect.create_collection(collection_name, default_fields)
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_create_collection_existed(self, connect):
'''
target: test create collection but the collection name have already existed
@ -136,7 +136,7 @@ class TestCreateCollection:
message = getattr(e, 'message', "The exception does not contain the field of message.")
assert message == "Create collection failed: collection %s exist" % collection_name
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_create_after_drop_collection(self, connect, collection):
'''
target: create with the same collection name after collection dropped
@ -148,7 +148,7 @@ class TestCreateCollection:
connect.create_collection(collection, default_fields)
@pytest.mark.level(2)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_create_collection_multithread(self, connect):
'''
target: test create collection with multithread
@ -226,7 +226,7 @@ class TestCreateCollectionInvalid(object):
connect.create_collection(collection_name, fields)
@pytest.mark.level(2)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_create_collection_with_invalid_dimension(self, connect, get_dim):
dimension = get_dim
collection_name = gen_unique_str()
@ -236,14 +236,14 @@ class TestCreateCollectionInvalid(object):
connect.create_collection(collection_name, fields)
@pytest.mark.level(2)
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_create_collection_with_invalid_collection_name(self, connect, get_invalid_string):
collection_name = get_invalid_string
with pytest.raises(Exception) as e:
connect.create_collection(collection_name, default_fields)
@pytest.mark.level(2)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.parametrize("collection_name", ('', None))
def test_create_collection_with_empty_or_None_collection_name(self, connect, collection_name):
# collection_name = ''
@ -255,7 +255,7 @@ class TestCreateCollectionInvalid(object):
message = getattr(e, 'message', "The exception does not contain the field of message.")
assert message == "Collection name should not be empty"
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_create_collection_no_dimension(self, connect):
'''
target: test create collection with no dimension params
@ -288,7 +288,7 @@ class TestCreateCollectionInvalid(object):
assert res["segment_row_limit"] == default_server_segment_row_limit
# TODO: assert exception
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_create_collection_limit_fields(self, connect):
collection_name = gen_unique_str(uid)
limit_num = 64
@ -308,7 +308,7 @@ class TestCreateCollectionInvalid(object):
# TODO: assert exception
@pytest.mark.level(2)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_create_collection_invalid_field_name(self, connect, get_invalid_string):
collection_name = gen_unique_str(uid)
fields = copy.deepcopy(default_fields)
@ -319,7 +319,7 @@ class TestCreateCollectionInvalid(object):
connect.create_collection(collection_name, fields)
# TODO: assert exception
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_create_collection_invalid_field_type(self, connect, get_field_type):
collection_name = gen_unique_str(uid)
fields = copy.deepcopy(default_fields)

View File

@ -39,7 +39,7 @@ class TestDescribeCollection:
The following cases are used to test `describe_collection` function, no data in collection
******************************************************************
"""
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_collection_fields(self, connect, get_filter_field, get_vector_field):
'''
target: test create normal collection with different fields, check info returned
@ -65,7 +65,7 @@ class TestDescribeCollection:
assert field["name"] == vector_field["name"]
assert field["params"] == vector_field["params"]
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_describe_collection_after_index_created(self, connect, collection, get_simple_index):
connect.create_index(collection, default_float_vec_field_name, get_simple_index)
if get_simple_index["index_type"] != "FLAT":
@ -75,7 +75,7 @@ class TestDescribeCollection:
assert index["params"] == get_simple_index["params"]
@pytest.mark.level(2)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_describe_collection_without_connection(self, collection, dis_connect):
'''
target: test get collection info, without connection
@ -85,7 +85,7 @@ class TestDescribeCollection:
with pytest.raises(Exception) as e:
dis_connect.describe_collection(collection)
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_describe_collection_not_existed(self, connect):
'''
target: test if collection not created
@ -106,7 +106,7 @@ class TestDescribeCollection:
assert message == "describe collection failed: can't find collection: %s" % collection_name
@pytest.mark.level(2)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_describe_collection_multithread(self, connect):
'''
target: test create collection with multithread
@ -134,7 +134,7 @@ class TestDescribeCollection:
The following cases are used to test `describe_collection` function, and insert data in collection
******************************************************************
"""
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_describe_collection_fields_after_insert(self, connect, get_filter_field, get_vector_field):
'''
target: test create normal collection with different fields, check info returned
@ -176,14 +176,14 @@ class TestDescribeCollectionInvalid(object):
yield request.param
@pytest.mark.level(2)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_describe_collection_with_invalid_collection_name(self, connect, get_collection_name):
collection_name = get_collection_name
with pytest.raises(Exception) as e:
connect.describe_collection(collection_name)
@pytest.mark.level(2)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.parametrize("collection_name", ('', None))
def test_describe_collection_with_empty_or_None_collection_name(self, connect, collection_name):
with pytest.raises(Exception) as e:

View File

@ -17,7 +17,7 @@ class TestDropCollection:
The following cases are used to test `drop_collection` function
******************************************************************
"""
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_drop_collection_A(self, connect, collection):
'''
target: test delete collection created with correct params
@ -29,7 +29,7 @@ class TestDropCollection:
time.sleep(2)
assert not connect.has_collection(collection)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_drop_collection_without_connection(self, collection, dis_connect):
'''
target: test describe collection, without connection
@ -39,7 +39,7 @@ class TestDropCollection:
with pytest.raises(Exception) as e:
dis_connect.drop_collection(collection)
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_drop_collection_not_existed(self, connect):
'''
target: test if collection not created
@ -57,7 +57,7 @@ class TestDropCollection:
assert message == "describe collection failed: can't find collection: %s" % collection_name
@pytest.mark.level(2)
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_create_drop_collection_multithread(self, connect):
'''
target: test create and drop collection with multithread
@ -97,13 +97,13 @@ class TestDropCollectionInvalid(object):
yield request.param
@pytest.mark.level(2)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_drop_collection_with_invalid_collection_name(self, connect, get_collection_name):
collection_name = get_collection_name
with pytest.raises(Exception) as e:
connect.has_collection(collection_name)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.parametrize("collection_name", ('', None))
def test_drop_collection_with_empty_or_None_collection_name(self, connect, collection_name):
with pytest.raises(Exception) as e:

View File

@ -17,7 +17,7 @@ class TestHasCollection:
The following cases are used to test `has_collection` function
******************************************************************
"""
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_has_collection(self, connect, collection):
'''
target: test if the created collection existed
@ -27,7 +27,7 @@ class TestHasCollection:
assert connect.has_collection(collection)
@pytest.mark.level(2)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_has_collection_without_connection(self, collection, dis_connect):
'''
target: test has collection, without connection
@ -37,7 +37,7 @@ class TestHasCollection:
with pytest.raises(Exception) as e:
assert dis_connect.has_collection(collection)
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_has_collection_not_existed(self, connect):
'''
target: test if collection not created
@ -52,7 +52,7 @@ class TestHasCollection:
assert not connect.has_collection(collection_name)
@pytest.mark.level(2)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_has_collection_multithread(self, connect):
'''
target: test create collection with multithread
@ -88,21 +88,21 @@ class TestHasCollectionInvalid(object):
yield request.param
@pytest.mark.level(2)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_has_collection_with_invalid_collection_name(self, connect, get_collection_name):
collection_name = get_collection_name
with pytest.raises(Exception) as e:
connect.has_collection(collection_name)
@pytest.mark.level(2)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_has_collection_with_empty_collection_name(self, connect):
collection_name = ''
with pytest.raises(Exception) as e:
connect.has_collection(collection_name)
@pytest.mark.level(2)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_has_collection_with_none_collection_name(self, connect):
collection_name = None
with pytest.raises(Exception) as e:

View File

@ -12,7 +12,7 @@ class TestListCollections:
The following cases are used to test `list_collections` function
******************************************************************
"""
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_list_collections(self, connect, collection):
'''
target: test list collections
@ -21,7 +21,7 @@ class TestListCollections:
'''
assert collection in connect.list_collections()
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_list_collections_multi_collections(self, connect):
'''
target: test list collections
@ -35,7 +35,7 @@ class TestListCollections:
assert collection_name in connect.list_collections()
@pytest.mark.level(2)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_list_collections_without_connection(self, dis_connect):
'''
target: test list collections, without connection
@ -45,7 +45,7 @@ class TestListCollections:
with pytest.raises(Exception) as e:
dis_connect.list_collections()
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_list_collections_not_existed(self, connect):
'''
target: test if collection not created
@ -62,7 +62,7 @@ class TestListCollections:
# TODO: make sure to run this case in the end
@pytest.mark.skip("r0.3-test")
@pytest.mark.level(2)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_list_collections_no_collection(self, connect):
'''
target: test show collections is correct or not, if no collection in db
@ -76,7 +76,7 @@ class TestListCollections:
assert connect.has_collection(collection_name)
@pytest.mark.level(2)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_list_collections_multithread(self, connect):
'''
target: test list collection with multithread

View File

@ -36,7 +36,7 @@ class TestLoadCollection:
def get_binary_index(self, request, connect):
return request.param
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_load_collection_after_index(self, connect, collection, get_simple_index):
'''
target: test load collection, after index created
@ -49,7 +49,7 @@ class TestLoadCollection:
connect.load_collection(collection)
connect.release_collection(collection)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
def test_load_collection_after_index_binary(self, connect, binary_collection, get_binary_index):
'''
@ -73,7 +73,7 @@ class TestLoadCollection:
connect.load_collection(binary_collection)
connect.release_collection(binary_collection)
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_load_empty_collection(self, connect, collection):
'''
target: test load collection
@ -84,7 +84,7 @@ class TestLoadCollection:
connect.release_collection(collection)
@pytest.mark.level(2)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_load_collection_dis_connect(self, dis_connect, collection):
'''
target: test load collection, without connection
@ -95,7 +95,7 @@ class TestLoadCollection:
dis_connect.load_collection(collection)
@pytest.mark.level(2)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_release_collection_dis_connect(self, dis_connect, collection):
'''
target: test release collection, without connection
@ -106,7 +106,7 @@ class TestLoadCollection:
dis_connect.release_collection(collection)
@pytest.mark.level(2)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_load_collection_not_existed(self, connect, collection):
collection_name = gen_unique_str(uid)
try:
@ -118,7 +118,7 @@ class TestLoadCollection:
assert message == "describe collection failed: can't find collection: %s" % collection_name
@pytest.mark.level(2)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_release_collection_not_existed(self, connect, collection):
collection_name = gen_unique_str(uid)
try:
@ -129,7 +129,7 @@ class TestLoadCollection:
message = getattr(e, 'message', "The exception does not contain the field of message.")
assert message == "describe collection failed: can't find collection: %s" % collection_name
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_release_collection_not_load(self, connect, collection):
"""
target: test release collection without load
@ -141,7 +141,7 @@ class TestLoadCollection:
connect.flush([collection])
connect.release_collection(collection)
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_load_collection_after_load_release(self, connect, collection):
ids = connect.insert(collection, default_entities)
assert len(ids) == default_nb
@ -150,7 +150,7 @@ class TestLoadCollection:
connect.release_collection(collection)
connect.load_collection(collection)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_load_collection_repeatedly(self, connect, collection):
ids = connect.insert(collection, default_entities)
assert len(ids) == default_nb
@ -159,7 +159,7 @@ class TestLoadCollection:
connect.load_collection(collection)
@pytest.mark.level(2)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_load_release_collection(self, connect, collection):
collection_name = gen_unique_str(uid)
connect.create_collection(collection_name, default_fields)
@ -184,7 +184,7 @@ class TestLoadCollection:
message = getattr(e, 'message', "The exception does not contain the field of message.")
assert message == "describe collection failed: can't find collection: %s" % collection_name
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_release_collection_after_drop(self, connect, collection):
"""
target: test release collection after drop
@ -204,7 +204,7 @@ class TestLoadCollection:
message = getattr(e, 'message', "The exception does not contain the field of message.")
assert message == "describe collection failed: can't find collection: %s" % collection
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_load_collection_without_flush(self, connect, collection):
"""
target: test load collection without flush
@ -223,7 +223,7 @@ class TestLoadCollection:
expected: raise exception
"""
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_load_collection_release_part_partitions(self, connect, collection):
"""
target: test release part partitions after load collection
@ -243,7 +243,7 @@ class TestLoadCollection:
res = connect.search(collection, default_single_query, partition_tags=[default_partition_name])
assert len(res[0]) == default_top_k
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_load_collection_release_all_partitions(self, connect, collection):
"""
target: test release all partitions after load collection
@ -261,7 +261,7 @@ class TestLoadCollection:
with pytest.raises(Exception) as e:
connect.search(collection, default_single_query)
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_load_partitions_release_collection(self, connect, collection):
"""
target: test release collection after load partitions
@ -281,7 +281,7 @@ class TestLoadCollection:
class TestReleaseAdvanced:
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_release_collection_during_searching(self, connect, collection):
"""
target: test release collection during searching
@ -299,7 +299,7 @@ class TestReleaseAdvanced:
with pytest.raises(Exception):
connect.search(collection, default_single_query)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_release_partition_during_searching(self, connect, collection):
"""
target: test release partition during searching
@ -318,7 +318,7 @@ class TestReleaseAdvanced:
with pytest.raises(Exception):
res = connect.search(collection, default_single_query)
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_release_collection_during_searching_A(self, connect, collection):
"""
target: test release collection during searching
@ -424,14 +424,14 @@ class TestLoadCollectionInvalid(object):
yield request.param
@pytest.mark.level(2)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_load_collection_with_invalid_collection_name(self, connect, get_collection_name):
collection_name = get_collection_name
with pytest.raises(Exception) as e:
connect.load_collection(collection_name)
@pytest.mark.level(2)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_release_collection_with_invalid_collection_name(self, connect, get_collection_name):
collection_name = get_collection_name
with pytest.raises(Exception) as e:
@ -466,7 +466,7 @@ class TestLoadPartition:
else:
pytest.skip("Skip index Temporary")
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_load_partition_after_index(self, connect, collection, get_simple_index):
'''
target: test load collection, after index created
@ -485,7 +485,7 @@ class TestLoadPartition:
assert len(res[0]) == default_top_k
@pytest.mark.level(2)
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_load_partition_after_index_binary(self, connect, binary_collection, get_binary_index):
'''
target: test load binary_collection, after index created
@ -506,7 +506,7 @@ class TestLoadPartition:
connect.create_index(binary_collection, default_binary_vec_field_name, get_binary_index)
connect.load_partitions(binary_collection, [default_tag])
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_load_empty_partition(self, connect, collection):
'''
target: test load collection
@ -519,7 +519,7 @@ class TestLoadPartition:
assert len(res[0]) == 0
@pytest.mark.level(2)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_load_collection_dis_connect(self, connect, dis_connect, collection):
'''
target: test load collection, without connection
@ -531,7 +531,7 @@ class TestLoadPartition:
dis_connect.load_partitions(collection, [default_tag])
@pytest.mark.level(2)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_release_partition_dis_connect(self, connect, dis_connect, collection):
'''
target: test release collection, without connection
@ -544,7 +544,7 @@ class TestLoadPartition:
dis_connect.release_partitions(collection, [default_tag])
@pytest.mark.level(2)
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_load_partition_not_existed(self, connect, collection):
partition_name = gen_unique_str(uid)
try:
@ -556,7 +556,7 @@ class TestLoadPartition:
assert message == "partitionID of partitionName:%s can not be find" % partition_name
@pytest.mark.level(2)
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_release_partition_not_existed(self, connect, collection):
partition_name = gen_unique_str(uid)
try:
@ -567,7 +567,7 @@ class TestLoadPartition:
message = getattr(e, 'message', "The exception does not contain the field of message.")
assert message == "partitionID of partitionName:%s can not be find" % partition_name
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_release_partition_not_load(self, connect, collection):
"""
target: test release collection without load
@ -581,7 +581,7 @@ class TestLoadPartition:
connect.release_partitions(collection, [default_tag])
@pytest.mark.level(2)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_load_release_after_drop(self, connect, collection):
connect.create_partition(collection, default_tag)
ids = connect.insert(collection, default_entities, partition_tag=default_tag)
@ -606,7 +606,7 @@ class TestLoadPartition:
message = getattr(e, 'message', "The exception does not contain the field of message.")
assert message == "partitionID of partitionName:%s can not be find" % default_tag
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_release_partition_after_drop(self, connect, collection):
"""
target: test release collection after drop
@ -627,7 +627,7 @@ class TestLoadPartition:
message = getattr(e, 'message', "The exception does not contain the field of message.")
assert message == "partitionID of partitionName:%s can not be find" % default_tag
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_load_release_after_collection_drop(self, connect, collection):
"""
target: test release collection after drop
@ -671,14 +671,14 @@ class TestLoadPartitionInvalid(object):
yield request.param
@pytest.mark.level(2)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_load_partition_with_invalid_partition_name(self, connect, collection, get_partition_name):
partition_name = get_partition_name
with pytest.raises(Exception) as e:
connect.load_partitions(collection, [partition_name])
@pytest.mark.level(2)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_release_partition_with_invalid_partition_name(self, connect, collection, get_partition_name):
partition_name = get_partition_name
with pytest.raises(Exception) as e:

View File

@ -49,7 +49,7 @@ class TestInsertBase:
def get_vector_field(self, request):
yield request.param
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_insert_with_empty_entity(self, connect, collection):
'''
target: test insert with empty entity list
@ -60,7 +60,7 @@ class TestInsertBase:
with pytest.raises(ParamError) as e:
connect.insert(collection, entities)
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_insert_with_None(self, connect, collection):
'''
target: test insert with None
@ -72,7 +72,7 @@ class TestInsertBase:
connect.insert(collection, entity)
@pytest.mark.timeout(ADD_TIMEOUT)
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_insert_collection_not_existed(self, connect):
'''
target: test insert, with collection not existed
@ -84,7 +84,7 @@ class TestInsertBase:
connect.insert(collection_name, default_entities)
@pytest.mark.level(2)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_insert_without_connect(self, dis_connect, collection):
'''
target: test insert entities without connection
@ -95,7 +95,7 @@ class TestInsertBase:
dis_connect.insert(collection, default_entities)
@pytest.mark.timeout(ADD_TIMEOUT)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_insert_drop_collection(self, connect, collection):
'''
target: test delete collection after insert entities
@ -108,7 +108,7 @@ class TestInsertBase:
assert connect.has_collection(collection) == False
@pytest.mark.timeout(ADD_TIMEOUT)
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_insert_flush_drop_collection(self, connect, collection):
'''
target: test drop collection after insert entities for a while
@ -122,7 +122,7 @@ class TestInsertBase:
assert connect.has_collection(collection) == False
@pytest.mark.timeout(ADD_TIMEOUT)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_insert_create_index(self, connect, collection, get_simple_index):
'''
target: test build index insert after entities
@ -138,7 +138,7 @@ class TestInsertBase:
assert index == get_simple_index
@pytest.mark.timeout(ADD_TIMEOUT)
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_insert_after_create_index(self, connect, collection, get_simple_index):
'''
target: test build index insert after vector
@ -153,7 +153,7 @@ class TestInsertBase:
assert index == get_simple_index
@pytest.mark.timeout(ADD_TIMEOUT)
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_insert_search(self, connect, collection):
'''
target: test search entity after insert entity after a while
@ -187,7 +187,7 @@ class TestInsertBase:
yield request.param
@pytest.mark.timeout(ADD_TIMEOUT)
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_insert_ids(self, connect, id_collection, insert_count):
'''
target: test insert entities in collection, use customize ids
@ -204,7 +204,7 @@ class TestInsertBase:
assert stats[row_count] == nb
@pytest.mark.timeout(ADD_TIMEOUT)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_insert_the_same_ids(self, connect, id_collection, insert_count):
'''
target: test insert vectors in collection, use customize the same ids
@ -221,7 +221,7 @@ class TestInsertBase:
assert stats[row_count] == nb
@pytest.mark.timeout(ADD_TIMEOUT)
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_insert_ids_fields(self, connect, get_filter_field, get_vector_field):
'''
target: test create normal collection with different fields, insert entities into id with ids
@ -247,7 +247,7 @@ class TestInsertBase:
assert stats[row_count] == nb
@pytest.mark.timeout(ADD_TIMEOUT)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_insert_ids_not_match(self, connect, id_collection, insert_count):
'''
target: test insert entities in collection without ids
@ -260,7 +260,7 @@ class TestInsertBase:
# TODO
@pytest.mark.timeout(ADD_TIMEOUT)
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_insert_twice_ids_no_ids(self, connect, id_collection):
'''
target: check the result of insert, with params ids and no ids
@ -273,7 +273,7 @@ class TestInsertBase:
connect.insert(id_collection, default_entities)
@pytest.mark.timeout(ADD_TIMEOUT)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_insert_not_ids(self, connect, id_collection):
'''
target: check the result of insert, with params ids and no ids
@ -284,7 +284,7 @@ class TestInsertBase:
connect.insert(id_collection, default_entities)
@pytest.mark.timeout(ADD_TIMEOUT)
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_insert_ids_length_not_match_batch(self, connect, id_collection):
'''
target: test insert vectors in collection, use customize ids, len(ids) != len(vectors)
@ -297,7 +297,7 @@ class TestInsertBase:
connect.insert(id_collection, default_entities, ids)
@pytest.mark.timeout(ADD_TIMEOUT)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_insert_ids_length_not_match_single(self, connect, id_collection):
'''
target: test insert vectors in collection, use customize ids, len(ids) != len(vectors)
@ -310,7 +310,7 @@ class TestInsertBase:
connect.insert(id_collection, default_entity, ids)
@pytest.mark.timeout(ADD_TIMEOUT)
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_insert_partition(self, connect, collection):
'''
target: test insert entities in collection created before
@ -327,7 +327,7 @@ class TestInsertBase:
# TODO
@pytest.mark.timeout(ADD_TIMEOUT)
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_insert_partition_with_ids(self, connect, id_collection):
'''
target: test insert entities in collection created before, insert with ids
@ -341,7 +341,7 @@ class TestInsertBase:
logging.getLogger().info(connect.describe_collection(id_collection))
@pytest.mark.timeout(ADD_TIMEOUT)
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_insert_default_partition(self, connect, collection):
'''
target: test insert entities into default partition
@ -355,7 +355,7 @@ class TestInsertBase:
assert stats[row_count] == default_nb
@pytest.mark.timeout(ADD_TIMEOUT)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_insert_partition_not_existed(self, connect, collection):
'''
target: test insert entities in collection created before
@ -367,7 +367,7 @@ class TestInsertBase:
connect.insert(collection, default_entities, partition_tag=tag)
@pytest.mark.timeout(ADD_TIMEOUT)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_insert_partition_repeatedly(self, connect, collection):
'''
target: test insert entities in collection created before
@ -381,7 +381,7 @@ class TestInsertBase:
res = connect.get_collection_stats(collection)
assert res[row_count] == 2 * default_nb
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_insert_dim_not_matched(self, connect, collection):
'''
target: test insert entities, the vector dimension is not equal to the collection dimension
@ -394,7 +394,7 @@ class TestInsertBase:
with pytest.raises(Exception) as e:
connect.insert(collection, insert_entities)
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_insert_with_field_name_not_match(self, connect, collection):
'''
target: test insert entities, with the entity field name updated
@ -406,7 +406,7 @@ class TestInsertBase:
connect.insert(collection, tmp_entity)
@pytest.mark.level(2)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_insert_with_field_type_not_match(self, connect, collection):
'''
target: test insert entities, with the entity field type updated
@ -418,7 +418,7 @@ class TestInsertBase:
connect.insert(collection, tmp_entity)
@pytest.mark.level(2)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_insert_with_field_value_not_match(self, connect, collection):
'''
target: test insert entities, with the entity field value updated
@ -429,7 +429,7 @@ class TestInsertBase:
with pytest.raises(Exception):
connect.insert(collection, tmp_entity)
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_insert_with_field_more(self, connect, collection):
'''
target: test insert entities, with more fields than collection schema
@ -440,7 +440,7 @@ class TestInsertBase:
with pytest.raises(Exception):
connect.insert(collection, tmp_entity)
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_insert_with_field_vector_more(self, connect, collection):
'''
target: test insert entities, with more fields than collection schema
@ -451,7 +451,7 @@ class TestInsertBase:
with pytest.raises(Exception):
connect.insert(collection, tmp_entity)
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_insert_with_field_less(self, connect, collection):
'''
target: test insert entities, with less fields than collection schema
@ -462,7 +462,7 @@ class TestInsertBase:
with pytest.raises(Exception):
connect.insert(collection, tmp_entity)
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_insert_with_field_vector_less(self, connect, collection):
'''
target: test insert entities, with less fields than collection schema
@ -473,7 +473,7 @@ class TestInsertBase:
with pytest.raises(Exception):
connect.insert(collection, tmp_entity)
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_insert_with_no_field_vector_value(self, connect, collection):
'''
target: test insert entities, with no vector field value
@ -485,7 +485,7 @@ class TestInsertBase:
with pytest.raises(Exception):
connect.insert(collection, tmp_entity)
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_insert_with_no_field_vector_type(self, connect, collection):
'''
target: test insert entities, with no vector field type
@ -497,7 +497,7 @@ class TestInsertBase:
with pytest.raises(Exception):
connect.insert(collection, tmp_entity)
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_insert_with_no_field_vector_name(self, connect, collection):
'''
target: test insert entities, with no vector field name
@ -512,7 +512,7 @@ class TestInsertBase:
# todo fix timeout
# @pytest.mark.level(2)
# @pytest.mark.timeout(30)
# @pytest.mark.tags("0331")
# @pytest.mark.tags(CaseLabel.tags_0331)
def test_collection_insert_rows_count_multi_threading(self, args, collection):
'''
target: test collection rows_count is correct or not with multi threading
@ -565,7 +565,7 @@ class TestInsertBinary:
request.param["metric_type"] = "JACCARD"
return request.param
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_insert_binary_entities(self, connect, binary_collection):
'''
target: test insert entities in binary collection
@ -578,7 +578,7 @@ class TestInsertBinary:
stats = connect.get_collection_stats(binary_collection)
assert stats[row_count] == default_nb
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_insert_binary_partition(self, connect, binary_collection):
'''
target: test insert entities and create partition tag
@ -593,7 +593,7 @@ class TestInsertBinary:
stats = connect.get_collection_stats(binary_collection)
assert stats[row_count] == default_nb
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_insert_binary_multi_times(self, connect, binary_collection):
'''
target: test insert entities multi times and final flush
@ -607,7 +607,7 @@ class TestInsertBinary:
stats = connect.get_collection_stats(binary_collection)
assert stats[row_count] == default_nb
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_insert_binary_after_create_index(self, connect, binary_collection, get_binary_index):
'''
target: test insert binary entities after build index
@ -622,7 +622,7 @@ class TestInsertBinary:
assert index == get_binary_index
@pytest.mark.timeout(ADD_TIMEOUT)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_insert_binary_create_index(self, connect, binary_collection, get_binary_index):
'''
target: test build index insert after vector
@ -636,7 +636,7 @@ class TestInsertBinary:
index = connect.describe_index(binary_collection, binary_field_name)
assert index == get_binary_index
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_insert_binary_search(self, connect, binary_collection):
'''
target: test search vector after insert vector after a while
@ -677,7 +677,7 @@ class TestInsertAsync:
logging.getLogger().info("In callback check results")
assert result
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_insert_async(self, connect, collection, insert_count):
'''
target: test insert vectors with different length of vectors
@ -691,7 +691,7 @@ class TestInsertAsync:
assert len(ids) == nb
@pytest.mark.level(2)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_insert_async_false(self, connect, collection, insert_count):
'''
target: test insert vectors with different length of vectors
@ -704,7 +704,7 @@ class TestInsertAsync:
connect.flush([collection])
assert len(ids) == nb
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_insert_async_callback(self, connect, collection, insert_count):
'''
target: test insert vectors with different length of vectors
@ -718,7 +718,7 @@ class TestInsertAsync:
assert len(ids) == nb
@pytest.mark.level(2)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_insert_async_long(self, connect, collection):
'''
target: test insert vectors with different length of vectors
@ -735,7 +735,7 @@ class TestInsertAsync:
assert stats[row_count] == nb
@pytest.mark.level(2)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_insert_async_callback_timeout(self, connect, collection):
'''
target: test insert vectors with different length of vectors
@ -749,7 +749,7 @@ class TestInsertAsync:
stats = connect.get_collection_stats(collection)
assert stats[row_count] == 0
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_insert_async_invalid_params(self, connect):
'''
target: test insert vectors with different length of vectors
@ -763,7 +763,7 @@ class TestInsertAsync:
ids = future.result()
# #1339
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_insert_async_invalid_params_raise_exception(self, connect, collection):
'''
target: test insert vectors with different length of vectors
@ -795,7 +795,7 @@ class TestInsertMultiCollections:
# pytest.skip("sq8h not support in CPU mode")
return request.param
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_insert_entity_multi_collections(self, connect):
'''
target: test insert entities
@ -815,7 +815,7 @@ class TestInsertMultiCollections:
assert stats[row_count] == default_nb
@pytest.mark.timeout(ADD_TIMEOUT)
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_drop_collection_insert_entity_another(self, connect, collection):
'''
target: test insert vector to collection_1 after collection_2 deleted
@ -830,7 +830,7 @@ class TestInsertMultiCollections:
assert len(ids) == 1
@pytest.mark.timeout(ADD_TIMEOUT)
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_create_index_insert_entity_another(self, connect, collection, get_simple_index):
'''
target: test insert vector to collection_2 after build index for collection_1
@ -848,7 +848,7 @@ class TestInsertMultiCollections:
connect.drop_collection(collection_name)
@pytest.mark.timeout(ADD_TIMEOUT)
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_insert_entity_create_index_another(self, connect, collection, get_simple_index):
'''
target: test insert vector to collection_2 after build index for collection_1
@ -867,7 +867,7 @@ class TestInsertMultiCollections:
assert stats[row_count] == 1
@pytest.mark.timeout(ADD_TIMEOUT)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_insert_entity_sleep_create_index_another(self, connect, collection, get_simple_index):
'''
target: test insert vector to collection_2 after build index for collection_1 for a while
@ -883,7 +883,7 @@ class TestInsertMultiCollections:
assert stats[row_count] == 1
@pytest.mark.timeout(ADD_TIMEOUT)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_search_entity_insert_entity_another(self, connect, collection):
'''
target: test insert entity to collection_1 after search collection_2
@ -901,7 +901,7 @@ class TestInsertMultiCollections:
assert stats[row_count] == 1
@pytest.mark.timeout(ADD_TIMEOUT)
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_insert_entity_search_entity_another(self, connect, collection):
'''
target: test insert entity to collection_1 after search collection_2
@ -918,7 +918,7 @@ class TestInsertMultiCollections:
assert stats[row_count] == 1
@pytest.mark.timeout(ADD_TIMEOUT)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_insert_entity_sleep_search_entity_another(self, connect, collection):
'''
target: test insert entity to collection_1 after search collection_2 a while
@ -1008,7 +1008,7 @@ class TestInsertInvalid(object):
def get_field_vectors_value(self, request):
yield request.param
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_insert_ids_invalid(self, connect, id_collection, get_entity_id):
'''
target: test insert, with using customize ids, which are not int64
@ -1020,13 +1020,13 @@ class TestInsertInvalid(object):
with pytest.raises(Exception):
connect.insert(id_collection, default_entities, ids)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_insert_with_invalid_collection_name(self, connect, get_collection_name):
collection_name = get_collection_name
with pytest.raises(Exception):
connect.insert(collection_name, default_entity)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_insert_with_invalid_partition_name(self, connect, collection, get_tag_name):
tag_name = get_tag_name
connect.create_partition(collection, default_tag)
@ -1036,27 +1036,27 @@ class TestInsertInvalid(object):
else:
connect.insert(collection, default_entity, partition_tag=tag_name)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_insert_with_invalid_field_name(self, connect, collection, get_field_name):
tmp_entity = update_field_name(copy.deepcopy(default_entity), "int64", get_field_name)
with pytest.raises(Exception):
connect.insert(collection, tmp_entity)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_insert_with_invalid_field_type(self, connect, collection, get_field_type):
field_type = get_field_type
tmp_entity = update_field_type(copy.deepcopy(default_entity), 'float', field_type)
with pytest.raises(Exception):
connect.insert(collection, tmp_entity)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_insert_with_invalid_field_value(self, connect, collection, get_field_int_value):
field_value = get_field_int_value
tmp_entity = update_field_type(copy.deepcopy(default_entity), 'int64', field_value)
with pytest.raises(Exception):
connect.insert(collection, tmp_entity)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_insert_with_invalid_field_entity_value(self, connect, collection, get_field_vectors_value):
tmp_entity = copy.deepcopy(default_entity)
src_vector = tmp_entity[-1]["values"]
@ -1120,21 +1120,21 @@ class TestInsertInvalidBinary(object):
yield request.param
@pytest.mark.level(2)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_insert_with_invalid_field_name(self, connect, binary_collection, get_field_name):
tmp_entity = update_field_name(copy.deepcopy(default_binary_entity), "int64", get_field_name)
with pytest.raises(Exception):
connect.insert(binary_collection, tmp_entity)
@pytest.mark.level(2)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_insert_with_invalid_field_value(self, connect, binary_collection, get_field_int_value):
tmp_entity = update_field_type(copy.deepcopy(default_binary_entity), 'int64', get_field_int_value)
with pytest.raises(Exception):
connect.insert(binary_collection, tmp_entity)
@pytest.mark.level(2)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_insert_with_invalid_field_entity_value(self, connect, binary_collection, get_field_vectors_value):
tmp_entity = copy.deepcopy(default_binary_entity)
src_vectors = tmp_entity[-1]["values"]
@ -1143,7 +1143,7 @@ class TestInsertInvalidBinary(object):
connect.insert(binary_collection, tmp_entity)
@pytest.mark.level(2)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_insert_ids_invalid(self, connect, binary_id_collection, get_entity_id):
'''
target: test insert, with using customize ids, which are not int64
@ -1156,7 +1156,7 @@ class TestInsertInvalidBinary(object):
connect.insert(binary_id_collection, default_binary_entities, ids)
@pytest.mark.level(2)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_insert_with_invalid_field_type(self, connect, binary_collection, get_field_type):
field_type = get_field_type
tmp_entity = update_field_type(copy.deepcopy(default_binary_entity), 'int64', field_type)
@ -1164,7 +1164,7 @@ class TestInsertInvalidBinary(object):
connect.insert(binary_collection, tmp_entity)
@pytest.mark.level(2)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_insert_with_invalid_field_entities_value(self, connect, binary_collection, get_field_vectors_value):
tmp_entities = copy.deepcopy(default_binary_entities)
src_vector = tmp_entities[-1]["values"]

View File

@ -145,7 +145,7 @@ class TestSearchBase:
def get_nq(self, request):
yield request.param
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_search_flat(self, connect, collection, get_top_k, get_nq):
'''
target: test basic search function, all the search params is correct, change top-k value
@ -166,7 +166,7 @@ class TestSearchBase:
with pytest.raises(Exception) as e:
res = connect.search(collection, query)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_search_flat_top_k(self, connect, collection, get_nq):
'''
target: test basic search function, all the search params is correct, change top-k value
@ -257,7 +257,7 @@ class TestSearchBase:
assert res2[0][0].id == res[0][1].id
assert res2[0][0].entity.get("int64") == res[0][1].entity.get("int64")
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
def test_search_after_index(self, connect, collection, get_simple_index, get_top_k, get_nq):
'''
@ -286,7 +286,7 @@ class TestSearchBase:
assert res[0]._distances[0] < epsilon
assert check_id_result(res[0], ids[0])
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_search_after_index_different_metric_type(self, connect, collection, get_simple_index):
'''
target: test search with different metric_type
@ -310,7 +310,7 @@ class TestSearchBase:
with pytest.raises(Exception) as e:
res = connect.search(collection, query)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
def test_search_index_empty_partition(self, connect, collection, get_simple_index, get_top_k, get_nq):
'''
@ -344,7 +344,7 @@ class TestSearchBase:
res = connect.search(collection, query, partition_tags=[default_tag])
assert len(res[0]) == 0
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
@pytest.mark.timeout(600)
def test_search_index_partition(self, connect, collection, get_simple_index, get_top_k, get_nq):
@ -376,7 +376,7 @@ class TestSearchBase:
assert check_id_result(res[0], ids[0])
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
def test_search_index_partition_not_existed(self, connect, collection, get_top_k, get_nq, get_simple_index):
'''
@ -397,7 +397,7 @@ class TestSearchBase:
with pytest.raises(Exception) as e:
connect.search(collection, query, partition_tags=["new_tag"])
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
def test_search_index_partitions(self, connect, collection, get_simple_index, get_top_k):
'''
@ -433,7 +433,7 @@ class TestSearchBase:
assert res[1]._distances[0] > epsilon
connect.release_collection(collection)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
def test_search_index_partitions_B(self, connect, collection, get_simple_index, get_top_k):
'''
@ -469,7 +469,7 @@ class TestSearchBase:
assert res[1]._distances[0] < epsilon
connect.release_collection(collection)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
def test_search_ip_flat(self, connect, collection, get_simple_index, get_top_k, get_nq):
'''
@ -487,7 +487,7 @@ class TestSearchBase:
assert res[0]._distances[0] >= 1 - gen_inaccuracy(res[0]._distances[0])
assert check_id_result(res[0], ids[0])
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
def test_search_ip_after_index(self, connect, collection, get_simple_index, get_top_k, get_nq):
'''
@ -513,7 +513,7 @@ class TestSearchBase:
assert check_id_result(res[0], ids[0])
assert res[0]._distances[0] >= 1 - gen_inaccuracy(res[0]._distances[0])
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
def test_search_ip_index_empty_partition(self, connect, collection, get_simple_index, get_top_k, get_nq):
'''
@ -547,7 +547,7 @@ class TestSearchBase:
res = connect.search(collection, query, partition_tags=[default_tag])
assert len(res[0]) == 0
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
def test_search_ip_index_partitions(self, connect, collection, get_simple_index, get_top_k):
'''
@ -581,7 +581,7 @@ class TestSearchBase:
# TODO:
# assert res[1]._distances[0] >= 1 - gen_inaccuracy(res[1]._distances[0])
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
def test_search_without_connect(self, dis_connect, collection):
'''
@ -592,7 +592,7 @@ class TestSearchBase:
with pytest.raises(Exception) as e:
res = dis_connect.search(collection, default_query)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_search_collection_not_existed(self, connect):
'''
target: search collection not existed
@ -603,7 +603,7 @@ class TestSearchBase:
with pytest.raises(Exception) as e:
res = connect.search(collection_name, default_query)
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_search_distance_l2(self, connect, collection):
'''
target: search collection, and check the result: distance
@ -623,7 +623,7 @@ class TestSearchBase:
res = connect.search(collection, query)
assert abs(np.sqrt(res[0]._distances[0]) - min(distance_0, distance_1)) <= gen_inaccuracy(res[0]._distances[0])
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_search_distance_l2_after_index(self, connect, id_collection, get_simple_index):
'''
target: search collection, and check the result: distance
@ -654,7 +654,7 @@ class TestSearchBase:
# TODO:
# assert abs(np.sqrt(res[0]._distances[0]) - min_distance) <= tmp_epsilon
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
def test_search_distance_ip(self, connect, collection):
'''
@ -677,7 +677,7 @@ class TestSearchBase:
res = connect.search(collection, query)
assert abs(res[0]._distances[0] - max(distance_0, distance_1)) <= epsilon
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_search_distance_ip_after_index(self, connect, id_collection, get_simple_index):
'''
target: search collection, and check the result: distance
@ -711,7 +711,7 @@ class TestSearchBase:
# TODO:
# assert abs(res[0]._distances[0] - max_distance) <= tmp_epsilon
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_search_distance_jaccard_flat_index(self, connect, binary_collection):
'''
target: search binary_collection, and check the result: distance
@ -728,7 +728,7 @@ class TestSearchBase:
res = connect.search(binary_collection, query)
assert abs(res[0]._distances[0] - min(distance_0, distance_1)) <= epsilon
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
def test_search_binary_flat_with_L2(self, connect, binary_collection):
'''
@ -743,7 +743,7 @@ class TestSearchBase:
with pytest.raises(Exception) as e:
connect.search(binary_collection, query)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
def test_search_distance_hamming_flat_index(self, connect, binary_collection):
'''
@ -761,7 +761,7 @@ class TestSearchBase:
res = connect.search(binary_collection, query)
assert abs(res[0][0].distance - min(distance_0, distance_1).astype(float)) <= epsilon
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
def test_search_distance_substructure_flat_index(self, connect, binary_collection):
'''
@ -780,7 +780,7 @@ class TestSearchBase:
res = connect.search(binary_collection, query)
assert len(res[0]) == 0
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
def test_search_distance_substructure_flat_index_B(self, connect, binary_collection):
'''
@ -800,7 +800,7 @@ class TestSearchBase:
assert res[1][0].distance <= epsilon
assert res[1][0].id == ids[1]
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
def test_search_distance_superstructure_flat_index(self, connect, binary_collection):
'''
@ -819,7 +819,7 @@ class TestSearchBase:
res = connect.search(binary_collection, query)
assert len(res[0]) == 0
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
def test_search_distance_superstructure_flat_index_B(self, connect, binary_collection):
'''
@ -841,7 +841,7 @@ class TestSearchBase:
assert res[1][0].id in ids
assert res[1][0].distance <= epsilon
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
def test_search_distance_tanimoto_flat_index(self, connect, binary_collection):
'''
@ -859,7 +859,7 @@ class TestSearchBase:
res = connect.search(binary_collection, query)
assert abs(res[0][0].distance - min(distance_0, distance_1)) <= epsilon
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
@pytest.mark.timeout(300)
def test_search_concurrent_multithreads(self, connect, args):
@ -895,7 +895,7 @@ class TestSearchBase:
for t in threads:
t.join()
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
@pytest.mark.timeout(300)
def test_search_concurrent_multithreads_single_connection(self, connect, args):
@ -930,7 +930,7 @@ class TestSearchBase:
for t in threads:
t.join()
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
def test_search_multi_collections(self, connect, args):
'''
@ -985,7 +985,7 @@ class TestSearchDSL(object):
******************************************************************
"""
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_query_no_must(self, connect, collection):
'''
method: build query without must expr
@ -996,7 +996,7 @@ class TestSearchDSL(object):
with pytest.raises(Exception) as e:
res = connect.search(collection, query)
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_query_no_vector_term_only(self, connect, collection):
'''
method: build query without vector only term
@ -1010,7 +1010,7 @@ class TestSearchDSL(object):
with pytest.raises(Exception) as e:
res = connect.search(collection, query)
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_query_no_vector_range_only(self, connect, collection):
'''
method: build query without vector only range
@ -1024,7 +1024,7 @@ class TestSearchDSL(object):
with pytest.raises(Exception) as e:
res = connect.search(collection, query)
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_query_vector_only(self, connect, collection):
entities, ids = init_data(connect, collection)
connect.load_collection(collection)
@ -1032,7 +1032,7 @@ class TestSearchDSL(object):
assert len(res) == nq
assert len(res[0]) == default_top_k
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_query_wrong_format(self, connect, collection):
'''
method: build query without must expr, with wrong expr name
@ -1046,7 +1046,7 @@ class TestSearchDSL(object):
with pytest.raises(Exception) as e:
res = connect.search(collection, query)
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_query_empty(self, connect, collection):
'''
method: search with empty query
@ -1062,7 +1062,7 @@ class TestSearchDSL(object):
******************************************************************
"""
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
def test_query_term_value_not_in(self, connect, collection):
'''
@ -1079,7 +1079,7 @@ class TestSearchDSL(object):
assert len(res[0]) == 0
# TODO:
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
def test_query_term_value_all_in(self, connect, collection):
'''
@ -1095,7 +1095,7 @@ class TestSearchDSL(object):
assert len(res[0]) == 1
# TODO:
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
def test_query_term_values_not_in(self, connect, collection):
'''
@ -1112,7 +1112,7 @@ class TestSearchDSL(object):
assert len(res[0]) == 0
# TODO:
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_query_term_values_all_in(self, connect, collection):
'''
method: build query with vector and term expr, with all term can be filtered
@ -1132,7 +1132,7 @@ class TestSearchDSL(object):
assert result.id in ids[:limit]
# TODO:
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_query_term_values_parts_in(self, connect, collection):
'''
method: build query with vector and term expr, with parts of term can be filtered
@ -1149,7 +1149,7 @@ class TestSearchDSL(object):
assert len(res[0]) == default_top_k
# TODO:
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
def test_query_term_values_repeat(self, connect, collection):
'''
@ -1167,7 +1167,7 @@ class TestSearchDSL(object):
assert len(res[0]) == 1
# TODO:
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_query_term_value_empty(self, connect, collection):
'''
method: build query with term value empty
@ -1180,7 +1180,7 @@ class TestSearchDSL(object):
assert len(res) == nq
assert len(res[0]) == 0
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_query_complex_dsl(self, connect, collection):
'''
method: query with complicated dsl
@ -1203,7 +1203,7 @@ class TestSearchDSL(object):
******************************************************************
"""
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
def test_query_term_key_error(self, connect, collection):
'''
@ -1223,7 +1223,7 @@ class TestSearchDSL(object):
def get_invalid_term(self, request):
return request.param
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
def test_query_term_wrong_format(self, connect, collection, get_invalid_term):
'''
@ -1237,7 +1237,7 @@ class TestSearchDSL(object):
with pytest.raises(Exception) as e:
res = connect.search(collection, query)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
def test_query_term_field_named_term(self, connect, collection):
'''
@ -1265,7 +1265,7 @@ class TestSearchDSL(object):
assert len(res[0]) == default_top_k
connect.drop_collection(collection_term)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
def test_query_term_one_field_not_existed(self, connect, collection):
'''
@ -1286,7 +1286,7 @@ class TestSearchDSL(object):
******************************************************************
"""
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_query_range_key_error(self, connect, collection):
'''
method: build query with range key error
@ -1305,7 +1305,7 @@ class TestSearchDSL(object):
def get_invalid_range(self, request):
return request.param
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
def test_query_range_wrong_format(self, connect, collection, get_invalid_range):
'''
@ -1319,7 +1319,7 @@ class TestSearchDSL(object):
with pytest.raises(Exception) as e:
res = connect.search(collection, query)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
def test_query_range_string_ranges(self, connect, collection):
'''
@ -1334,7 +1334,7 @@ class TestSearchDSL(object):
with pytest.raises(Exception) as e:
res = connect.search(collection, query)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
def test_query_range_invalid_ranges(self, connect, collection):
'''
@ -1357,7 +1357,7 @@ class TestSearchDSL(object):
def get_valid_ranges(self, request):
return request.param
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
def test_query_range_valid_ranges(self, connect, collection, get_valid_ranges):
'''
@ -1374,7 +1374,7 @@ class TestSearchDSL(object):
assert len(res) == nq
assert len(res[0]) == default_top_k
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_query_range_one_field_not_existed(self, connect, collection):
'''
method: build query with two fields ranges, one of fields not existed
@ -1394,7 +1394,7 @@ class TestSearchDSL(object):
************************************************************************
"""
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
def test_query_multi_term_has_common(self, connect, collection):
'''
@ -1411,7 +1411,7 @@ class TestSearchDSL(object):
assert len(res) == nq
assert len(res[0]) == default_top_k
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
def test_query_multi_term_no_common(self, connect, collection):
'''
@ -1428,7 +1428,7 @@ class TestSearchDSL(object):
assert len(res) == nq
assert len(res[0]) == 0
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_query_multi_term_different_fields(self, connect, collection):
'''
method: build query with multi range with same field, and ranges no common
@ -1445,7 +1445,7 @@ class TestSearchDSL(object):
assert len(res) == nq
assert len(res[0]) == 0
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
def test_query_single_term_multi_fields(self, connect, collection):
'''
@ -1461,7 +1461,7 @@ class TestSearchDSL(object):
with pytest.raises(Exception) as e:
res = connect.search(collection, query)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
def test_query_multi_range_has_common(self, connect, collection):
'''
@ -1478,7 +1478,7 @@ class TestSearchDSL(object):
assert len(res) == nq
assert len(res[0]) == default_top_k
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
def test_query_multi_range_no_common(self, connect, collection):
'''
@ -1495,7 +1495,7 @@ class TestSearchDSL(object):
assert len(res) == nq
assert len(res[0]) == 0
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
def test_query_multi_range_different_fields(self, connect, collection):
'''
@ -1512,7 +1512,7 @@ class TestSearchDSL(object):
assert len(res) == nq
assert len(res[0]) == 0
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
def test_query_single_range_multi_fields(self, connect, collection):
'''
@ -1534,7 +1534,7 @@ class TestSearchDSL(object):
******************************************************************
"""
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
def test_query_single_term_range_has_common(self, connect, collection):
'''
@ -1551,7 +1551,7 @@ class TestSearchDSL(object):
assert len(res) == nq
assert len(res[0]) == default_top_k
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_query_single_term_range_no_common(self, connect, collection):
'''
method: build query with single term single range
@ -1573,7 +1573,7 @@ class TestSearchDSL(object):
******************************************************************
"""
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_query_multi_vectors_same_field(self, connect, collection):
'''
method: build query with two vectors same field
@ -1597,7 +1597,7 @@ class TestSearchDSLBools(object):
******************************************************************
"""
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
def test_query_no_bool(self, connect, collection):
'''
@ -1610,7 +1610,7 @@ class TestSearchDSLBools(object):
with pytest.raises(Exception) as e:
res = connect.search(collection, query)
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_query_should_only_term(self, connect, collection):
'''
method: build query without must, with should.term instead
@ -1621,7 +1621,7 @@ class TestSearchDSLBools(object):
with pytest.raises(Exception) as e:
res = connect.search(collection, query)
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_query_should_only_vector(self, connect, collection):
'''
method: build query without must, with should.vector instead
@ -1632,7 +1632,7 @@ class TestSearchDSLBools(object):
with pytest.raises(Exception) as e:
res = connect.search(collection, query)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_query_must_not_only_term(self, connect, collection):
'''
method: build query without must, with must_not.term instead
@ -1643,7 +1643,7 @@ class TestSearchDSLBools(object):
with pytest.raises(Exception) as e:
res = connect.search(collection, query)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_query_must_not_vector(self, connect, collection):
'''
method: build query without must, with must_not.vector instead
@ -1654,7 +1654,7 @@ class TestSearchDSLBools(object):
with pytest.raises(Exception) as e:
res = connect.search(collection, query)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_query_must_should(self, connect, collection):
'''
method: build query must, and with should.term
@ -1710,14 +1710,14 @@ class TestSearchInvalid(object):
return request.param
@pytest.mark.level(2)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_search_with_invalid_collection(self, connect, get_collection_name):
collection_name = get_collection_name
with pytest.raises(Exception) as e:
res = connect.search(collection_name, default_query)
@pytest.mark.level(2)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_search_with_invalid_partition(self, connect, collection, get_invalid_partition):
# tag = " "
tag = get_invalid_partition
@ -1725,14 +1725,14 @@ class TestSearchInvalid(object):
res = connect.search(collection, default_query, partition_tags=tag)
@pytest.mark.level(2)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_search_with_invalid_field_name(self, connect, collection, get_invalid_field):
fields = [get_invalid_field]
with pytest.raises(Exception) as e:
res = connect.search(collection, default_query, fields=fields)
@pytest.mark.level(1)
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_search_with_not_existed_field(self, connect, collection):
fields = [gen_unique_str("field_name")]
with pytest.raises(Exception) as e:
@ -1750,7 +1750,7 @@ class TestSearchInvalid(object):
yield request.param
@pytest.mark.level(1)
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_search_with_invalid_top_k(self, connect, collection, get_top_k):
'''
target: test search function, with the wrong top_k
@ -1774,7 +1774,7 @@ class TestSearchInvalid(object):
yield request.param
@pytest.mark.level(2)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_search_with_invalid_params(self, connect, collection, get_simple_index, get_search_params):
'''
target: test search function, with the wrong nprobe
@ -1797,7 +1797,7 @@ class TestSearchInvalid(object):
res = connect.search(collection, query)
@pytest.mark.level(2)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_search_with_invalid_params_binary(self, connect, binary_collection):
'''
target: test search function, with the wrong nprobe
@ -1816,7 +1816,7 @@ class TestSearchInvalid(object):
res = connect.search(binary_collection, query)
@pytest.mark.level(2)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_search_with_empty_params(self, connect, collection, args, get_simple_index):
'''
target: test search function, with empty search params

View File

@ -19,7 +19,7 @@ class TestConnect:
else:
return False
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_close(self, connect):
'''
target: test disconnect
@ -30,7 +30,7 @@ class TestConnect:
with pytest.raises(Exception) as e:
connect.list_collections()
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_close_repeatedly(self, dis_connect, args):
'''
target: test disconnect repeatedly
@ -40,7 +40,7 @@ class TestConnect:
with pytest.raises(Exception) as e:
dis_connect.close()
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_connect_correct_ip_port(self, args):
'''
target: test connect with correct ip and port value
@ -61,7 +61,7 @@ class TestConnect:
# assert milvus.connected()
@pytest.mark.timeout(CONNECT_TIMEOUT)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_connect_wrong_ip_null(self, args):
'''
target: test connect with wrong ip value
@ -72,7 +72,7 @@ class TestConnect:
with pytest.raises(Exception) as e:
get_milvus(ip, args["port"], args["handler"])
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_connect_uri(self, args):
'''
target: test connect with correct uri
@ -82,7 +82,7 @@ class TestConnect:
uri_value = "tcp://%s:%s" % (args["ip"], args["port"])
milvus = get_milvus(args["ip"], args["port"], uri=uri_value, handler=args["handler"])
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_connect_uri_null(self, args):
'''
target: test connect with null uri
@ -96,7 +96,7 @@ class TestConnect:
with pytest.raises(Exception) as e:
milvus = get_milvus(None, None, uri=uri_value, handler=args["handler"])
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_connect_with_multiprocess(self, args):
'''
target: test uri connect with multiprocess
@ -113,7 +113,7 @@ class TestConnect:
for future in concurrent.futures.as_completed(future_results):
future.result()
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_connect_repeatedly(self, args):
'''
target: test connect repeatedly
@ -173,7 +173,7 @@ class TestConnectIPInvalid(object):
@pytest.mark.level(2)
@pytest.mark.timeout(CONNECT_TIMEOUT)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_connect_with_invalid_ip(self, args, get_invalid_ip):
ip = get_invalid_ip
with pytest.raises(Exception) as e:
@ -194,7 +194,7 @@ class TestConnectPortInvalid(object):
@pytest.mark.level(2)
@pytest.mark.timeout(CONNECT_TIMEOUT)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_connect_with_invalid_port(self, args, get_invalid_port):
'''
target: test ip:port connect with invalid port value
@ -220,7 +220,7 @@ class TestConnectURIInvalid(object):
@pytest.mark.level(2)
@pytest.mark.timeout(CONNECT_TIMEOUT)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_connect_with_invalid_uri(self, get_invalid_uri, args):
'''
target: test uri connect with invalid uri value

View File

@ -49,7 +49,7 @@ class TestFlushBase:
def get_vector_field(self, request):
yield request.param
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_flush_collection_not_existed(self, connect, collection):
'''
target: test flush, params collection_name not existed
@ -65,7 +65,7 @@ class TestFlushBase:
message = getattr(e, 'message', "The exception does not contain the field of message.")
assert message == "describe collection failed: can't find collection: %s" % collection_new
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_flush_empty_collection(self, connect, collection):
'''
method: flush collection with no vectors
@ -83,7 +83,7 @@ class TestFlushBase:
# with pytest.raises(Exception) as e:
# connect.flush([collection])
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_add_partition_flush(self, connect, id_collection):
'''
method: add entities into partition in collection, flush serveral times
@ -101,7 +101,7 @@ class TestFlushBase:
res_count = connect.get_collection_stats(id_collection)
assert res_count["row_count"] == default_nb * 2
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_add_partitions_flush(self, connect, id_collection):
'''
method: add entities into partitions in collection, flush one
@ -118,7 +118,7 @@ class TestFlushBase:
res = connect.get_collection_stats(id_collection)
assert res["row_count"] == 2 * default_nb
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_add_collections_flush(self, connect, id_collection):
'''
method: add entities into collections, flush one
@ -141,7 +141,7 @@ class TestFlushBase:
res = connect.get_collection_stats(collection_new)
assert res["row_count"] == default_nb
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_add_collections_fields_flush(self, connect, id_collection, get_filter_field, get_vector_field):
'''
method: create collection with different fields, and add entities into collections, flush one
@ -174,7 +174,7 @@ class TestFlushBase:
assert res["row_count"] == nb_new
# TODO ci failed
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_add_flush_multiable_times(self, connect, collection):
'''
method: add entities, flush serveral times
@ -193,7 +193,7 @@ class TestFlushBase:
assert len(res[0].ids) == 10
assert len(res[0].distances) == 10
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_add_flush_auto(self, connect, id_collection):
'''
method: add entities
@ -223,7 +223,7 @@ class TestFlushBase:
def same_ids(self, request):
yield request.param
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_add_flush_same_ids(self, connect, id_collection, same_ids):
'''
method: add entities, with same ids, count(same ids) < 15, > 15
@ -238,7 +238,7 @@ class TestFlushBase:
res = connect.get_collection_stats(id_collection)
assert res["row_count"] == default_nb
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_delete_flush_multiable_times(self, connect, collection):
'''
method: delete entities, flush serveral times
@ -288,7 +288,7 @@ class TestFlushBase:
res = connect.get_collection_stats(collection)
assert res["row_count"] == 0
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
def test_delete_flush_during_search(self, connect, collection, args):
'''
@ -329,7 +329,7 @@ class TestFlushAsync:
def check_status(self):
logging.getLogger().info("In callback check status")
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_flush_empty_collection(self, connect, collection):
'''
method: flush collection with no vectors
@ -339,7 +339,7 @@ class TestFlushAsync:
status = future.result()
assert status is None
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_flush_async_long(self, connect, collection):
ids = connect.insert(collection, default_entities)
assert len(ids) == default_nb
@ -347,7 +347,7 @@ class TestFlushAsync:
status = future.result()
assert status is None
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_flush_async_long_drop_collection(self, connect, collection):
for i in range(5):
ids = connect.insert(collection, default_entities)
@ -358,7 +358,7 @@ class TestFlushAsync:
res = connect.drop_collection(collection)
assert res is None
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_flush_async(self, connect, collection):
connect.insert(collection, default_entities)
logging.getLogger().info("before")
@ -382,7 +382,7 @@ class TestCollectionNameInvalid(object):
def get_invalid_collection_name(self, request):
yield request.param
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
def test_flush_with_invalid_collection_name(self, connect, get_invalid_collection_name):
collection_name = get_invalid_collection_name
@ -391,7 +391,7 @@ class TestCollectionNameInvalid(object):
with pytest.raises(Exception) as e:
connect.flush(collection_name)
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_flush_empty(self, connect, collection):
ids = connect.insert(collection, default_entities)
assert len(ids) == default_nb

View File

@ -47,7 +47,7 @@ class TestIndexBase:
******************************************************************
"""
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
@pytest.mark.timeout(BUILD_TIMEOUT)
def test_create_index(self, connect, collection, get_simple_index):
'''
@ -61,7 +61,7 @@ class TestIndexBase:
index = connect.describe_index(collection, field_name)
assert index == get_simple_index
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_create_index_on_field_not_existed(self, connect, collection, get_simple_index):
'''
target: test create index interface
@ -73,7 +73,7 @@ class TestIndexBase:
with pytest.raises(Exception) as e:
connect.create_index(collection, tmp_field_name, get_simple_index)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
def test_create_index_on_field(self, connect, collection, get_simple_index):
'''
@ -86,7 +86,7 @@ class TestIndexBase:
with pytest.raises(Exception) as e:
connect.create_index(collection, tmp_field_name, get_simple_index)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.timeout(BUILD_TIMEOUT)
def test_create_index_no_vectors(self, connect, collection, get_simple_index):
'''
@ -99,7 +99,7 @@ class TestIndexBase:
index = connect.describe_index(collection, field_name)
assert index == get_simple_index
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.timeout(BUILD_TIMEOUT)
def test_create_index_partition(self, connect, collection, get_simple_index):
'''
@ -114,7 +114,7 @@ class TestIndexBase:
index = connect.describe_index(collection, field_name)
assert index == get_simple_index
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
@pytest.mark.timeout(BUILD_TIMEOUT)
def test_create_index_partition_flush(self, connect, collection, get_simple_index):
'''
@ -130,7 +130,7 @@ class TestIndexBase:
index = connect.describe_index(collection, field_name)
assert index == get_simple_index
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_create_index_without_connect(self, dis_connect, collection):
'''
target: test create index without connection
@ -140,7 +140,7 @@ class TestIndexBase:
with pytest.raises(Exception) as e:
dis_connect.create_index(collection, field_name, get_simple_index)
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
@pytest.mark.timeout(BUILD_TIMEOUT)
def test_create_index_search_with_query_vectors(self, connect, collection, get_simple_index, get_nq):
'''
@ -160,7 +160,7 @@ class TestIndexBase:
res = connect.search(collection, query)
assert len(res) == nq
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.timeout(BUILD_TIMEOUT)
@pytest.mark.level(2)
def test_create_index_multithread(self, connect, collection, args):
@ -188,7 +188,7 @@ class TestIndexBase:
for t in threads:
t.join()
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_create_index_collection_not_existed(self, connect):
'''
target: test create index interface when collection name not existed
@ -200,7 +200,7 @@ class TestIndexBase:
with pytest.raises(Exception) as e:
connect.create_index(collection_name, field_name, default_index)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
@pytest.mark.timeout(BUILD_TIMEOUT)
def test_create_index_insert_flush(self, connect, collection, get_simple_index):
@ -218,7 +218,7 @@ class TestIndexBase:
index = connect.describe_index(collection, field_name)
assert index == get_simple_index
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
@pytest.mark.timeout(BUILD_TIMEOUT)
def test_create_same_index_repeatedly(self, connect, collection, get_simple_index):
@ -233,7 +233,7 @@ class TestIndexBase:
index = connect.describe_index(collection, field_name)
assert index == get_simple_index
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
@pytest.mark.timeout(BUILD_TIMEOUT)
def test_create_different_index_repeatedly(self, connect, collection):
@ -253,7 +253,7 @@ class TestIndexBase:
# assert index == indexs[-1]
assert not index # FLAT is the last index_type, drop all indexes in server
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
@pytest.mark.timeout(BUILD_TIMEOUT)
def test_create_index_ip(self, connect, collection, get_simple_index):
'''
@ -268,7 +268,7 @@ class TestIndexBase:
index = connect.describe_index(collection, field_name)
assert index == get_simple_index
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
@pytest.mark.timeout(BUILD_TIMEOUT)
def test_create_index_no_vectors_ip(self, connect, collection, get_simple_index):
'''
@ -282,7 +282,7 @@ class TestIndexBase:
index = connect.describe_index(collection, field_name)
assert index == get_simple_index
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.timeout(BUILD_TIMEOUT)
def test_create_index_partition_ip(self, connect, collection, get_simple_index):
'''
@ -298,7 +298,7 @@ class TestIndexBase:
index = connect.describe_index(collection, field_name)
assert index == get_simple_index
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
@pytest.mark.timeout(BUILD_TIMEOUT)
def test_create_index_partition_flush_ip(self, connect, collection, get_simple_index):
'''
@ -315,7 +315,7 @@ class TestIndexBase:
index = connect.describe_index(collection, field_name)
assert index == get_simple_index
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
@pytest.mark.timeout(BUILD_TIMEOUT)
def test_create_index_search_with_query_vectors_ip(self, connect, collection, get_simple_index, get_nq):
'''
@ -337,7 +337,7 @@ class TestIndexBase:
res = connect.search(collection, query)
assert len(res) == nq
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.timeout(BUILD_TIMEOUT)
@pytest.mark.level(2)
def test_create_index_multithread_ip(self, connect, collection, args):
@ -366,7 +366,7 @@ class TestIndexBase:
for t in threads:
t.join()
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_create_index_collection_not_existed_ip(self, connect, collection):
'''
target: test create index interface when collection name not existed
@ -379,7 +379,7 @@ class TestIndexBase:
with pytest.raises(Exception) as e:
connect.create_index(collection_name, field_name, default_index)
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
@pytest.mark.timeout(BUILD_TIMEOUT)
def test_create_index_no_vectors_insert_ip(self, connect, collection):
'''
@ -397,7 +397,7 @@ class TestIndexBase:
index = connect.describe_index(collection, field_name)
assert index == default_index
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
@pytest.mark.timeout(BUILD_TIMEOUT)
def test_create_same_index_repeatedly_ip(self, connect, collection):
@ -413,7 +413,7 @@ class TestIndexBase:
index = connect.describe_index(collection, field_name)
assert index == default_index
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
@pytest.mark.timeout(BUILD_TIMEOUT)
def test_create_different_index_repeatedly_ip(self, connect, collection):
@ -442,7 +442,7 @@ class TestIndexBase:
The following cases are used to test `drop_index` function
******************************************************************
"""
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_drop_index(self, connect, collection, get_simple_index):
'''
target: test drop index interface
@ -456,7 +456,7 @@ class TestIndexBase:
assert not index
@pytest.mark.level(2)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_drop_index_repeatedly(self, connect, collection, get_simple_index):
'''
target: test drop index repeatedly
@ -469,7 +469,7 @@ class TestIndexBase:
index = connect.describe_index(collection, field_name)
assert not index
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
def test_drop_index_without_connect(self, dis_connect, collection):
'''
@ -480,7 +480,7 @@ class TestIndexBase:
with pytest.raises(Exception) as e:
dis_connect.drop_index(collection, field_name)
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_drop_index_collection_not_existed(self, connect):
'''
target: test drop index interface when collection name not existed
@ -492,7 +492,7 @@ class TestIndexBase:
with pytest.raises(Exception) as e:
connect.drop_index(collection_name, field_name)
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_drop_index_collection_not_create(self, connect, collection):
'''
target: test drop index interface when index not created
@ -502,7 +502,7 @@ class TestIndexBase:
# no create index
connect.drop_index(collection, field_name)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
def test_create_drop_index_repeatedly(self, connect, collection, get_simple_index):
'''
@ -514,7 +514,7 @@ class TestIndexBase:
connect.create_index(collection, field_name, get_simple_index)
connect.drop_index(collection, field_name)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_drop_index_ip(self, connect, collection, get_simple_index):
'''
target: test drop index interface
@ -529,7 +529,7 @@ class TestIndexBase:
assert not index
@pytest.mark.level(2)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_drop_index_repeatedly_ip(self, connect, collection, get_simple_index):
'''
target: test drop index repeatedly
@ -543,7 +543,7 @@ class TestIndexBase:
index = connect.describe_index(collection, field_name)
assert not index
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
def test_drop_index_without_connect_ip(self, dis_connect, collection):
'''
@ -554,7 +554,7 @@ class TestIndexBase:
with pytest.raises(Exception) as e:
dis_connect.drop_index(collection, field_name)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_drop_index_collection_not_create_ip(self, connect, collection):
'''
target: test drop index interface when index not created
@ -565,7 +565,7 @@ class TestIndexBase:
# no create index
connect.drop_index(collection, field_name)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
def test_create_drop_index_repeatedly_ip(self, connect, collection, get_simple_index):
'''
@ -634,7 +634,7 @@ class TestIndexBinary:
******************************************************************
"""
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.timeout(BUILD_TIMEOUT)
def test_create_index(self, connect, binary_collection, get_jaccard_index):
'''
@ -647,7 +647,7 @@ class TestIndexBinary:
binary_index = connect.describe_index(binary_collection, binary_field_name)
assert binary_index == get_jaccard_index
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
@pytest.mark.timeout(BUILD_TIMEOUT)
def test_create_index_partition(self, connect, binary_collection, get_jaccard_index):
'''
@ -661,7 +661,7 @@ class TestIndexBinary:
binary_index = connect.describe_index(binary_collection, binary_field_name)
assert binary_index == get_jaccard_index
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
@pytest.mark.timeout(BUILD_TIMEOUT)
def test_create_index_search_with_query_vectors(self, connect, binary_collection, get_jaccard_index, get_nq):
'''
@ -680,7 +680,7 @@ class TestIndexBinary:
res = connect.search(binary_collection, query, search_params=search_param)
assert len(res) == nq
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.timeout(BUILD_TIMEOUT)
def test_create_index_invalid_metric_type_binary(self, connect, binary_collection, get_l2_index):
'''
@ -747,7 +747,7 @@ class TestIndexBinary:
The following cases are used to test `drop_index` function
******************************************************************
"""
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_drop_index(self, connect, binary_collection, get_jaccard_index):
'''
target: test drop index interface
@ -761,7 +761,7 @@ class TestIndexBinary:
binary_index = connect.describe_index(binary_collection, binary_field_name)
assert not binary_index
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_drop_index_partition(self, connect, binary_collection, get_jaccard_index):
'''
target: test drop index interface
@ -789,14 +789,14 @@ class TestIndexInvalid(object):
def get_collection_name(self, request):
yield request.param
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
@pytest.mark.level(1)
def test_create_index_with_invalid_collection_name(self, connect, get_collection_name):
collection_name = get_collection_name
with pytest.raises(Exception) as e:
connect.create_index(collection_name, field_name, default_index)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(1)
def test_drop_index_with_invalid_collection_name(self, connect, get_collection_name):
collection_name = get_collection_name
@ -810,7 +810,7 @@ class TestIndexInvalid(object):
def get_index(self, request):
yield request.param
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
def test_create_index_with_invalid_index_params(self, connect, collection, get_index):
logging.getLogger().info(get_index)
@ -850,7 +850,7 @@ class TestIndexAsync:
******************************************************************
"""
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.timeout(BUILD_TIMEOUT)
def test_create_index(self, connect, collection, get_simple_index):
'''
@ -866,7 +866,7 @@ class TestIndexAsync:
# TODO:
logging.getLogger().info(res)
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
@pytest.mark.timeout(BUILD_TIMEOUT)
def test_create_index_drop(self, connect, collection, get_simple_index):
'''
@ -880,7 +880,7 @@ class TestIndexAsync:
logging.getLogger().info("DROP")
connect.drop_collection(collection)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
def test_create_index_with_invalid_collection_name(self, connect):
collection_name = " "
@ -888,7 +888,7 @@ class TestIndexAsync:
future = connect.create_index(collection_name, field_name, default_index, _async=True)
res = future.result()
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
@pytest.mark.timeout(BUILD_TIMEOUT)
def test_create_index_callback(self, connect, collection, get_simple_index):
'''

View File

@ -18,7 +18,7 @@ class TestCreateBase:
******************************************************************
"""
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_create_partition_a(self, connect, collection):
'''
target: test create partition, check status returned
@ -28,7 +28,7 @@ class TestCreateBase:
connect.create_partition(collection, default_tag)
# TODO: enable
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
@pytest.mark.timeout(600)
def test_create_partition_limit(self, connect, collection, args):
@ -58,7 +58,7 @@ class TestCreateBase:
with pytest.raises(Exception) as e:
connect.create_partition(collection, tag_tmp)
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_create_partition_repeat(self, connect, collection):
'''
target: test create partition, check status returned
@ -75,7 +75,7 @@ class TestCreateBase:
assert message == "create partition failed: partition name = %s already exists" % default_tag
assert compare_list_elements(connect.list_partitions(collection), [default_tag, '_default'])
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
def test_create_partition_collection_not_existed(self, connect):
'''
target: test create partition, its owner collection name not existed in db, check status returned
@ -91,7 +91,7 @@ class TestCreateBase:
message = getattr(e, 'message', "The exception does not contain the field of message.")
assert message == "create partition failed: can't find collection: %s" % collection_name
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_create_partition_tag_name_None(self, connect, collection):
'''
target: test create partition, tag name set None, check status returned
@ -104,7 +104,7 @@ class TestCreateBase:
except Exception as e:
assert e.args[0] == "`partition_tag` value None is illegal"
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_create_different_partition_tags(self, connect, collection):
'''
target: test create partition twice with different names
@ -116,7 +116,7 @@ class TestCreateBase:
connect.create_partition(collection, tag_name)
assert compare_list_elements(connect.list_partitions(collection), [default_tag, tag_name, '_default'])
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_create_partition_insert_default(self, connect, id_collection):
'''
target: test create partition, and insert vectors, check status returned
@ -128,7 +128,7 @@ class TestCreateBase:
insert_ids = connect.insert(id_collection, default_entities, ids)
assert len(insert_ids) == len(ids)
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_create_partition_insert_with_tag(self, connect, id_collection):
'''
target: test create partition, and insert vectors, check status returned
@ -140,7 +140,7 @@ class TestCreateBase:
insert_ids = connect.insert(id_collection, default_entities, ids, partition_tag=default_tag)
assert len(insert_ids) == len(ids)
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_create_partition_insert_with_tag_not_existed(self, connect, collection):
'''
target: test create partition, and insert vectors, check status returned
@ -158,7 +158,7 @@ class TestCreateBase:
message = getattr(e, 'message', "The exception does not contain the field of message.")
assert message == "partitionID of partitionName:%s can not be find" % tag_new
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_create_partition_insert_same_tags(self, connect, id_collection):
'''
target: test create partition, and insert vectors, check status returned
@ -176,7 +176,7 @@ class TestCreateBase:
res = connect.get_collection_stats(id_collection)
assert res["row_count"] == default_nb * 2
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
def test_create_partition_insert_same_tags_two_collections(self, connect, collection):
'''
@ -207,7 +207,7 @@ class TestShowBase:
******************************************************************
"""
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_list_partitions(self, connect, collection):
'''
target: test show partitions, check status and partitions returned
@ -217,7 +217,7 @@ class TestShowBase:
connect.create_partition(collection, default_tag)
assert compare_list_elements(connect.list_partitions(collection), [default_tag, '_default'])
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_list_partitions_no_partition(self, connect, collection):
'''
target: test show partitions with collection name, check status and partitions returned
@ -227,7 +227,7 @@ class TestShowBase:
res = connect.list_partitions(collection)
assert compare_list_elements(res, ['_default'])
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_show_multi_partitions(self, connect, collection):
'''
target: test show partitions, check status and partitions returned
@ -255,7 +255,7 @@ class TestHasBase:
def get_tag_name(self, request):
yield request.param
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_has_partition_a(self, connect, collection):
'''
target: test has_partition, check status and result
@ -267,7 +267,7 @@ class TestHasBase:
logging.getLogger().info(res)
assert res
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_has_partition_multi_partitions(self, connect, collection):
'''
target: test has_partition, check status and result
@ -280,7 +280,7 @@ class TestHasBase:
res = connect.has_partition(collection, tag_name)
assert res
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_has_partition_tag_not_existed(self, connect, collection):
'''
target: test has_partition, check status and result
@ -291,7 +291,7 @@ class TestHasBase:
logging.getLogger().info(res)
assert not res
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_has_partition_collection_not_existed(self, connect, collection):
'''
target: test has_partition, check status and result
@ -307,7 +307,7 @@ class TestHasBase:
message = getattr(e, 'message', "The exception does not contain the field of message.")
assert message == "HasPartition failed: can't find collection: %s" % collection_name
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
def test_has_partition_with_invalid_tag_name(self, connect, collection, get_tag_name):
'''
@ -329,7 +329,7 @@ class TestDropBase:
******************************************************************
"""
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_drop_partition_a(self, connect, collection):
'''
target: test drop partition, check status and partition if existed
@ -343,7 +343,7 @@ class TestDropBase:
res2 = connect.list_partitions(collection)
assert default_tag not in res2
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_drop_partition_tag_not_existed(self, connect, collection):
'''
target: test drop partition, but tag not existed
@ -360,7 +360,7 @@ class TestDropBase:
message = getattr(e, 'message', "The exception does not contain the field of message.")
assert message == "DropPartition failed: partition %s does not exist" % new_tag
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_drop_partition_tag_not_existed_A(self, connect, collection):
'''
target: test drop partition, but collection not existed
@ -377,7 +377,7 @@ class TestDropBase:
message = getattr(e, 'message', "The exception does not contain the field of message.")
assert message == "DropPartition failed: can't find collection: %s" % new_collection
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
@pytest.mark.level(2)
def test_drop_partition_repeatedly(self, connect, collection):
'''
@ -398,7 +398,7 @@ class TestDropBase:
tag_list = connect.list_partitions(collection)
assert default_tag not in tag_list
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_drop_partition_create(self, connect, collection):
'''
target: test drop partition, and create again, check status
@ -429,7 +429,7 @@ class TestNameInvalid(object):
def get_collection_name(self, request):
yield request.param
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
def test_drop_partition_with_invalid_collection_name(self, connect, collection, get_collection_name):
'''
@ -442,7 +442,7 @@ class TestNameInvalid(object):
with pytest.raises(Exception) as e:
connect.drop_partition(collection_name, default_tag)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
def test_drop_partition_with_invalid_tag_name(self, connect, collection, get_tag_name):
'''
@ -455,7 +455,7 @@ class TestNameInvalid(object):
with pytest.raises(Exception) as e:
connect.drop_partition(collection, tag_name)
@pytest.mark.tags("0331")
@pytest.mark.tags(CaseLabel.tags_0331)
@pytest.mark.level(2)
def test_list_partitions_with_invalid_collection_name(self, connect, collection, get_collection_name):
'''
@ -471,7 +471,7 @@ class TestNameInvalid(object):
class TestNewCase(object):
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_drop_default_partition_A(self, connect, collection):
'''
target: test drop partition of default, check status returned
@ -488,7 +488,7 @@ class TestNewCase(object):
list_partition = connect.list_partitions(collection)
assert '_default' in list_partition
@pytest.mark.tags("0331", "l1")
@pytest.mark.tags(CaseLabel.tags_0331, CaseLabel.tags_l1, CaseLabel.tags_smoke)
def test_drop_default_partition_B(self, connect, collection):
'''
target: test drop partition of default, check status returned

View File

@ -1005,3 +1005,9 @@ class MyThread(threading.Thread):
super(MyThread, self).join()
if self.exc:
raise self.exc
class CaseLabel:
tags_0331 = "0331"
tags_l1 = "l1"
tags_smoke = "smoke"