Files
qdrant/openapi/tests/openapi_integration/test_validation.py
Luis Cossío d89d2ec24b Disable indexing and memmap with 0 (#1824)
* feat: use 0 as disable for indexing and memmap

* amend: edit test, update doc comments, remove validation

* fix: use constant instead of literal, reword doc comments

* test: update test for loop and timeout

* fix: remove validation on OptimizerConfigDiff and fix test_validatioin.py

* fix: remove validation from build.rs, remove internal hack from  doccomments

* fix: update grpc docs

* revert max_optimization_threads validation in test

* update config comments and minor test change

---------

Co-authored-by: Andrey Vasnetsov <andrey@vasnetsov.com>
2023-05-05 10:10:35 +02:00

71 lines
2.3 KiB
Python

import pytest
from .helpers.collection_setup import basic_collection_setup, drop_collection
from .helpers.helpers import request_with_validation
collection_name = 'test_collection'
@pytest.fixture(autouse=True)
def setup():
basic_collection_setup(collection_name=collection_name)
yield
drop_collection(collection_name=collection_name)
def test_validation():
# Collection names are limited to 255 chars due to filesystem constraints
response = request_with_validation(
api='/collections/{collection_name}/points/{id}',
method="GET",
path_params={
'collection_name': '''\
extremelylongnameextremelylongnameextremelylongname\
extremelylongnameextremelylongnameextremelylongname\
extremelylongnameextremelylongnameextremelylongname\
extremelylongnameextremelylongnameextremelylongname\
extremelylongnameextremelylongnameextremelylongname\
extremelylongnameextremelylongnameextremelylongname\
''',
'id': 1,
},
)
assert not response.ok
assert 'Validation error' in response.json()["status"]["error"]
# Illegal body parameters must trigger a validation error
response = request_with_validation(
api='/collections/{collection_name}',
method="PUT",
path_params={'collection_name': collection_name},
body={
"vectors": {
"size": 4,
"distance": "Dot"
},
"hnsw_config": {
"ef_construct": 0,
}
}
)
assert not response.ok
assert 'Validation error' in response.json()["status"]["error"]
assert 'hnsw_config.ef_construct' in response.json()["status"]["error"]
# Illegal URL parameters must trigger a validation error
response = request_with_validation(
api='/collections/{collection_name}',
method="PUT",
path_params={'collection_name': collection_name},
query_params={'timeout': 0},
body={
"vectors": {
"size": 4,
"distance": "Dot"
},
}
)
assert not response.ok
assert 'Validation error' in response.json()["status"]["error"]
assert 'timeout: value 0 invalid' in response.json()["status"]["error"]