def _get_postrelease(cls, match: Match[str] | None) -> ReleaseTag | None: if not match or match.group("post") is None: return None return ReleaseTag( match.group("post_l") or "post", int(match.group("post_n1") or match.group("post_n2") or 0), )
def _get_postrelease( cls, match: Optional[Match[AnyStr]]) -> Optional[ReleaseTag]: if not match or match.group("post") is None: return None return ReleaseTag( match.group("post_l") or "post", int(match.group("post_n1") or match.group("post_n2") or 0), )
def _get_devrelease( cls, match: Optional[Match[AnyStr]]) -> Optional[ReleaseTag]: if not match or match.group("dev") is None: return None return ReleaseTag(match.group("dev_l"), int(match.group("dev_n") or 0))
VersionRange( min=Version.from_parts(2, 7), max=Version.from_parts(2, 8), include_min=True, ), VersionRange( min=Version.from_parts(3, 8), max=Version.from_parts(3, 9), include_min=True, ), ), ), ( "^1.0.0a1", VersionRange( min=Version.from_parts(1, 0, 0, pre=ReleaseTag("a", 1)), max=Version.from_parts(2, 0, 0), include_min=True, ), ), ( "~1.0.0a1", VersionRange( min=Version.from_parts(1, 0, 0, pre=ReleaseTag("a", 1)), max=Version.from_parts(1, 1, 0), include_min=True, ), ), ], ) def test_parse_constraint(constraint, version):
VersionRange( min=Version.from_parts(2, 7), max=Version.from_parts(2, 8), include_min=True, ), VersionRange( min=Version.from_parts(3, 8), max=Version.from_parts(3, 9), include_min=True, ), ), ), ( "^1.0.0a1", VersionRange( min=Version.from_parts(1, 0, 0, pre=ReleaseTag("a", 1)), max=Version.from_parts(2, 0, 0), include_min=True, ), ), ( "^1.0.0a1.dev0", VersionRange( min=Version.from_parts( 1, 0, 0, pre=ReleaseTag("a", 1), dev=ReleaseTag("dev", 0)), max=Version.from_parts(2, 0, 0), include_min=True, ), ), ( "1.0.0a1.dev0",
("*", VersionRange()), ("*.*", VersionRange()), ("v*.*", VersionRange()), ("*.x.*", VersionRange()), ("x.X.x.*", VersionRange()), (">1.0.0", VersionRange(min=Version.from_parts(1, 0, 0))), ("<1.2.3", VersionRange(max=Version.from_parts(1, 2, 3))), ("<=1.2.3", VersionRange(max=Version.from_parts(1, 2, 3), include_max=True)), (">=1.2.3", VersionRange(min=Version.from_parts(1, 2, 3), include_min=True)), ("=1.2.3", Version.from_parts(1, 2, 3)), ("1.2.3", Version.from_parts(1, 2, 3)), ("1!2.3.4", Version.from_parts(2, 3, 4, epoch=1)), ("=1.0", Version.from_parts(1, 0, 0)), ("1.2.3b5", Version.from_parts(1, 2, 3, pre=ReleaseTag("beta", 5))), (">= 1.2.3", VersionRange(min=Version.from_parts(1, 2, 3), include_min=True)), ( ">dev", VersionRange(min=Version.from_parts(0, 0, dev=ReleaseTag("dev"))), ), # Issue 206 ], ) def test_parse_constraint(input: str, constraint: Version | VersionRange) -> None: assert parse_constraint(input) == constraint @pytest.mark.parametrize( "input,constraint",
def test_pep440_release_tag_next(phase): tag = ReleaseTag(phase=phase).next() assert tag.phase == ReleaseTag.expand(phase) assert tag.number == 1
def test_pep440_release_tag_next_phase(parts, result): assert ReleaseTag(*parts).next_phase() == result
def test_pep440_release_tag_normalisation(parts, result): tag = ReleaseTag(*parts) assert tag == result assert tag.to_string() == result.to_string() assert tag.to_string(short=True) == result.to_string(short=True)
[ ((1,), Release(1)), ((1, 2), Release(1, 2)), ((1, 2, 3), Release(1, 2, 3)), ((1, 2, 3, 4), Release(1, 2, 3, 4)), ((1, 2, 3, 4, 5, 6), Release(1, 2, 3, (4, 5, 6))), ], ) def test_pep440_release_segment_from_parts(parts, result): assert Release.from_parts(*parts) == result @pytest.mark.parametrize( "parts,result", [ (("a",), ReleaseTag("alpha", 0)), (("a", 1), ReleaseTag("alpha", 1)), (("b",), ReleaseTag("beta", 0)), (("b", 1), ReleaseTag("beta", 1)), (("pre",), ReleaseTag("preview", 0)), (("pre", 1), ReleaseTag("preview", 1)), (("c",), ReleaseTag("rc", 0)), (("c", 1), ReleaseTag("rc", 1)), (("r",), ReleaseTag("rev", 0)), (("r", 1), ReleaseTag("rev", 1)), ], ) def test_pep440_release_tag_normalisation(parts, result): tag = ReleaseTag(*parts) assert tag == result assert tag.to_string() == result.to_string()
import pytest from poetry.core.semver.empty_constraint import EmptyConstraint from poetry.core.semver.version import Version from poetry.core.semver.version_range import VersionRange from poetry.core.version.exceptions import InvalidVersion from poetry.core.version.pep440 import ReleaseTag @pytest.mark.parametrize( "text,version", [ ("1.0.0", Version.from_parts(1, 0, 0)), ("1", Version.from_parts(1, 0, 0)), ("1.0", Version.from_parts(1, 0, 0)), ("1b1", Version.from_parts(1, 0, 0, pre=ReleaseTag("beta", 1))), ("1.0b1", Version.from_parts(1, 0, 0, pre=ReleaseTag("beta", 1))), ("1.0.0b1", Version.from_parts(1, 0, 0, pre=ReleaseTag("beta", 1))), ("1.0.0-b1", Version.from_parts(1, 0, 0, pre=ReleaseTag("beta", 1))), ("1.0.0-beta.1", Version.from_parts(1, 0, 0, pre=ReleaseTag("beta", 1))), ("1.0.0+1", Version.from_parts(1, 0, 0, local=1)), ("1.0.0-1", Version.from_parts(1, 0, 0, post=ReleaseTag("post", 1))), ("1.0.0.0", Version.from_parts(1, 0, 0, extra=0)), ("1.0.0-post", Version.from_parts(1, 0, 0, post=ReleaseTag("post"))), ("1.0.0-post1", Version.from_parts(1, 0, 0, post=ReleaseTag("post", 1))), ("0.6c", Version.from_parts(0, 6, 0, pre=ReleaseTag("rc", 0))), ("0.6pre", Version.from_parts(0, 6, 0, pre=ReleaseTag("preview", 0))), ("1!2.3.4", Version.from_parts(2, 3, 4, epoch=1)), ],
def test_pep440_release_tag_next(phase: str) -> None: tag = ReleaseTag(phase=phase).next() assert tag.phase == RELEASE_PHASE_NORMALIZATIONS[phase] assert tag.number == 1
def test_pep440_release_tag_next_phase( parts: tuple[str], result: ReleaseTag | None ) -> None: assert ReleaseTag(*parts).next_phase() == result
def test_pep440_release_tag_normalisation( parts: tuple[str] | tuple[str, int], result: ReleaseTag ) -> None: tag = ReleaseTag(*parts) assert tag == result assert tag.to_string() == result.to_string()
def first_pre_release(self) -> "Version": return self.__class__(release=self.release, pre=ReleaseTag("alpha"))
def _get_devrelease(cls, match: Match[str] | None) -> ReleaseTag | None: if not match or match.group("dev") is None: return None return ReleaseTag(match.group("dev_l"), int(match.group("dev_n") or 0))