From ffc933e58caa2d5aaf9d17544693648460557e88 Mon Sep 17 00:00:00 2001 From: eeshsaxena Date: Mon, 6 Jul 2026 09:43:23 +0530 Subject: [PATCH] test: cover parse_version_string branches --- test/test_parse_version_string.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 test/test_parse_version_string.py diff --git a/test/test_parse_version_string.py b/test/test_parse_version_string.py new file mode 100644 index 000000000..f57b022f7 --- /dev/null +++ b/test/test_parse_version_string.py @@ -0,0 +1,30 @@ +import pytest + +from weaviate.util import parse_version_string + + +class TestParseVersionString: + """`parse_version_string` -> (major, minor), ignoring any patch.""" + + @pytest.mark.parametrize( + "version,expected", + [ + ("1.18.1", (1, 18)), + ("1.18", (1, 18)), + ("1.0.0", (1, 0)), + ], + ) + def test_major_minor_parsed_and_patch_ignored(self, version, expected): + assert parse_version_string(version) == expected + + @pytest.mark.parametrize("version", ["v1.18.2", "v3.4"]) + def test_leading_v_is_stripped(self, version): + assert parse_version_string(version) == parse_version_string(version[1:]) + + def test_version_without_minor_defaults_to_zero(self): + assert parse_version_string("2") == (2, 0) + + @pytest.mark.parametrize("version", ["abc", ""]) + def test_unparseable_version_raises_value_error(self, version): + with pytest.raises(ValueError): + parse_version_string(version)