diff --git a/tdd-ai-agents/tests/test_core.py b/tdd-ai-agents/tests/test_core.py index 21f288a849..1d5c73b93d 100644 --- a/tdd-ai-agents/tests/test_core.py +++ b/tdd-ai-agents/tests/test_core.py @@ -26,6 +26,18 @@ def test_double_digit_segments_sort_numerically(): assert Version("3.9") < Version("3.10") +@pytest.mark.parametrize( + "shorter, longer", + [ + ("1.2", "1.2.0"), + ("1", "1.0.0"), + ("1.0a1", "1.0.0a1"), + ], +) +def test_missing_segments_count_as_zero(shorter, longer): + assert Version(shorter) == Version(longer) + + @pytest.mark.parametrize( "lower, higher", [ diff --git a/tdd-ai-agents/version_check/core.py b/tdd-ai-agents/version_check/core.py index d4cfbc2480..39150427b2 100644 --- a/tdd-ai-agents/version_check/core.py +++ b/tdd-ai-agents/version_check/core.py @@ -27,6 +27,9 @@ def __init__(self, text): self._dev = int(match["dev"]) if match["dev"] else None def _key(self): + release = self._release + while len(release) > 1 and release[-1] == 0: + release = release[:-1] if self._dev is not None and self._pre is None: phase = (0, self._dev) elif self._pre is not None: @@ -35,7 +38,7 @@ def _key(self): phase = (3, self._post) else: phase = (2, 0) - return (self._release, phase) + return (release, phase) def __eq__(self, other): if not isinstance(other, Version):