コード例 #1
0
ファイル: transformers.py プロジェクト: wooseung-sim/bumpit
    def _transform_modifier_part(part, version, static):
        if version.modifier == static:
            raise ValueError(f"No detected version change.")

        new_version = parse_calver(str(version), version.version_format)
        new_version.modifier = static

        return new_version
コード例 #2
0
ファイル: transformers.py プロジェクト: wooseung-sim/bumpit
    def _transform_date_part(part, version, static):
        probe_version = parse_calver(str(version), version.version_format)
        probe_version.calendar_date = static

        if str(probe_version) == str(version):
            raise ValueError(f"No detected version change.")

        return CalVer(
            version_format=version.version_format,
            calendar_date=static,
            formatter=version.formatter,
        )
コード例 #3
0
ファイル: transformers.py プロジェクト: wooseung-sim/bumpit
    def _auto_transform(self, today, version):
        version_format = version.version_format

        probe_version = parse_calver(str(version), version_format)
        probe_version.calendar_date = today

        version_str = str(version)

        if str(probe_version) < version_str:
            raise ValueError(
                f"Current version {version_str} is already ahead of today's version."
            )
        elif str(probe_version) > version_str:
            return str(
                CalVer(version_format,
                       calendar_date=today,
                       formatter=version.formatter))
        else:
            return self._auto_update_numerical_parts(probe_version)
コード例 #4
0
ファイル: transformers.py プロジェクト: wooseung-sim/bumpit
    def _transform_numerical_part(part, version, static):
        try:
            value = int(static)
        except ValueError:
            raise ValueError(f"Expecting {part} to be an integer.")

        if getattr(version, part) >= value:
            raise ValueError(f"Can only increase {part} part.")

        new_version = parse_calver(str(version), version.version_format)
        resettable_numeric_fields = {
            MAJOR_PART: [MINOR_PART, MICRO_PART],
            MINOR_PART: [MICRO_PART],
            MICRO_PART: [],
        }[part]

        setattr(new_version, part, static)
        for reset_field in resettable_numeric_fields:
            setattr(new_version, reset_field, 0)

        new_version.modifier = ""

        return new_version
コード例 #5
0
ファイル: test_parsers.py プロジェクト: wooseung-sim/bumpit
def test_parse_invalid_version():
    with pytest.raises(ValueError):
        parse_calver("1.2.3", "YYYY")
コード例 #6
0
ファイル: test_parsers.py プロジェクト: wooseung-sim/bumpit
def test_parse_invalid_version_format_no_date_tokens():
    with pytest.raises(ValueError):
        parse_calver("1.2.3.nerp", "MAJOR.MINOR.MICRO.MODIFIER")
コード例 #7
0
ファイル: test_parsers.py プロジェクト: wooseung-sim/bumpit
def test_parse(version_format, version):
    calver = parse_calver(version, version_format)

    assert version == str(calver)