Skip to content

Commit f7eec91

Browse files
committed
finish adding tests
1 parent c56ac32 commit f7eec91

File tree

2 files changed

+11
-4
lines changed

2 files changed

+11
-4
lines changed

python/private/version.bzl

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -608,10 +608,11 @@ def _parse_local(value):
608608
if not value:
609609
return None
610610

611-
local = value.lstrip("+")
611+
if not value.startswith("+"):
612+
fail("local release identifier must start with '+', got: {}".format(value))
612613

613614
# If the part is numerical, handle it as a number
614-
return tuple([int(part) if part.isdigit() else part for part in local.split(".")])
615+
return tuple([int(part) if part.isdigit() else part for part in value[1:].split(".")])
615616

616617
def _parse_dev(value):
617618
if not value:
@@ -709,11 +710,12 @@ def _version_compatible(left, right):
709710
# >= V.N, == V.*
710711

711712
right_star = ".".join([str(d) for d in right.release[:-1]])
712-
if right_star:
713+
if right.epoch:
714+
right_star = "{}!{}.".format(right.epoch, right_star)
715+
else:
713716
right_star = "{}.".format(right_star)
714717

715718
# TODO @aignas 2025-05-09: more tests:
716-
# epoch
717719
# negative tests
718720
return _version_ge(left, right) and left.string.startswith(right_star)
719721

tests/pypi/pep508/evaluate_tests.bzl

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -305,6 +305,11 @@ _MISC_EXPRESSIONS = [
305305
_expr_case('python_version ~= "2.2.post3"', False, {"python_version": "2.2"}),
306306
_expr_case('python_version ~= "2.2.post3"', True, {"python_version": "2.3"}),
307307
_expr_case('python_version ~= "2.2.post3"', False, {"python_version": "3.0"}),
308+
_expr_case('python_version ~= "1!2.2"', False, {"python_version": "2.7"}),
309+
_expr_case('python_version ~= "0!2.2"', True, {"python_version": "2.7"}),
310+
_expr_case('python_version ~= "1!2.2"', True, {"python_version": "1!2.7"}),
311+
_expr_case('python_version ~= "1.2.3"', True, {"python_version": "1.2.4"}),
312+
_expr_case('python_version ~= "1.2.3"', False, {"python_version": "1.3.2"}),
308313
]
309314

310315
def _misc_expressions(env):

0 commit comments

Comments
 (0)