diff --git a/sentry_sdk/utils.py b/sentry_sdk/utils.py index 45e5376d1c..be0e98d6f7 100644 --- a/sentry_sdk/utils.py +++ b/sentry_sdk/utils.py @@ -1314,6 +1314,15 @@ def parse_version(version: str) -> "Optional[Tuple[int, ...]]": except (TypeError, ValueError, AttributeError): return None + if len(release_tuple) < 3: + # Pad out to three digits so that version comparison against a three-part + # tuple works as expected (e.g. (0, 1) should be >= than (0, 1, 0) when + # it comes to releases, but tuples don't compare that way). + if len(release_tuple) == 1: + release_tuple = (release_tuple[0], 0, 0) + elif len(release_tuple) == 2: + release_tuple = (release_tuple[0], release_tuple[1], 0) + return release_tuple diff --git a/tests/test_utils.py b/tests/test_utils.py index 64973ea5dd..af08ece0e4 100644 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -535,15 +535,15 @@ def test_match_regex_list(item, regex_list, expected_result): ["2.0.0b3", (2, 0, 0)], ["2.0.0b2", (2, 0, 0)], ["2.0.0b1", (2, 0, 0)], - ["0.6beta3", (0, 6)], - ["0.6beta2", (0, 6)], - ["0.6beta1", (0, 6)], + ["0.6beta3", (0, 6, 0)], + ["0.6beta2", (0, 6, 0)], + ["0.6beta1", (0, 6, 0)], ["0.4.2b", (0, 4, 2)], ["0.4.2a", (0, 4, 2)], ["0.0.1", (0, 0, 1)], ["0.0.0", (0, 0, 0)], - ["1", (1,)], - ["1.0", (1, 0)], + ["1", (1, 0, 0)], + ["1.0", (1, 0, 0)], ["1.0.0", (1, 0, 0)], [" 1.0.0 ", (1, 0, 0)], [" 1.0.0 ", (1, 0, 0)],