Ejemplo n.º 1
0
    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),
        )
Ejemplo n.º 2
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),
        )
Ejemplo n.º 3
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))
Ejemplo n.º 4
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",
Ejemplo n.º 6
0
        ("*", 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",
Ejemplo n.º 7
0
def test_pep440_release_tag_next(phase):
    tag = ReleaseTag(phase=phase).next()
    assert tag.phase == ReleaseTag.expand(phase)
    assert tag.number == 1
Ejemplo n.º 8
0
def test_pep440_release_tag_next_phase(parts, result):
    assert ReleaseTag(*parts).next_phase() == result
Ejemplo n.º 9
0
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)
Ejemplo n.º 10
0
    [
        ((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()
Ejemplo n.º 11
0
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()
Ejemplo n.º 15
0
 def first_pre_release(self) -> "Version":
     return self.__class__(release=self.release, pre=ReleaseTag("alpha"))
Ejemplo n.º 16
0
 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))