mirror of
https://github.com/qdrant/qdrant-client.git
synced 2026-07-23 11:11:01 -05:00
* Replace `check_version` with `check_compatibility` in warnings and tests to fit flag name * refactoring: refactor warnings --------- Co-authored-by: George Panchuk <george.panchuk@qdrant.tech>
67 lines
2.5 KiB
Python
67 lines
2.5 KiB
Python
import pytest
|
|
|
|
from qdrant_client.common.version_check import is_compatible, parse_version
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
"client_version, server_version, expected_result",
|
|
[
|
|
("1.9.3.dev0", "2.8.1.dev12-something", False),
|
|
("1.9", "2.8", False),
|
|
("1", "2", False),
|
|
("1.9.0", "2.9.0", False),
|
|
("1.1.0", "1.2.9", True),
|
|
("1.2.7", "1.1.8.dev0", True),
|
|
("1.2.1", "1.2.29", True),
|
|
("1.2.0", "1.2.0", True),
|
|
("1.2.0", "1.4.0", False),
|
|
("1.4.0", "1.2.0", False),
|
|
("1.9.0", "3.7.0", False),
|
|
("3.0.0", "1.0.0", False),
|
|
(None, "1.0.0", False),
|
|
("1.0.0", None, False),
|
|
(None, None, False),
|
|
],
|
|
ids=[
|
|
"Diff between major versions = 1, negative",
|
|
"Diff between major versions = 1, only major and minor, negative",
|
|
"Diff between major versions = 1, only major, negative",
|
|
"Diff between major versions = 1, minor versions are the same, negative",
|
|
"Diff between major versions == 0, diff between minor versions == 1 (server > client), positive",
|
|
"Diff between major versions == 0, diff between minor versions == 1 (client > server), positive",
|
|
"Diff between major versions == 0, diff between minor versions == 0, positive",
|
|
"Same versions, positive",
|
|
"Diff between major versions == 0, diff between minor versions > 1 (server > client), negative",
|
|
"Diff between major versions == 0, diff between minor versions > 1 (client > server), negative",
|
|
"Diff between major versions > 1 (server > client), negative",
|
|
"Diff between major versions > 1 (client > server), negative",
|
|
"Client version is None, negative",
|
|
"Server version is None, negative",
|
|
"Both versions are None, negative",
|
|
],
|
|
)
|
|
def test_check_compatibility(client_version, server_version, expected_result):
|
|
assert (
|
|
is_compatible(client_version=client_version, server_version=server_version)
|
|
is expected_result
|
|
)
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
"input_version",
|
|
["1", "1.", ".1", ".1.", "1.None.1", "None.0.1", None, ""],
|
|
ids=[
|
|
"Only major part",
|
|
"Only major part with dot",
|
|
"Only minor part",
|
|
"Only minor part with dot",
|
|
"Minor part is not a number",
|
|
"Major part is not a number",
|
|
"Version is None",
|
|
"Version is empty",
|
|
],
|
|
)
|
|
def test_parse_versions_value_error(input_version):
|
|
with pytest.raises(ValueError):
|
|
parse_version(input_version)
|