reenable tests

This commit is contained in:
Manuel Barkhau 2020-09-18 17:02:03 +00:00
parent 09299f30f1
commit 76fe72da43
2 changed files with 70 additions and 49 deletions

View file

@ -9,11 +9,11 @@ import io
import typing as typ import typing as typ
import logging import logging
import pycalver.rewrite as v1rewrite
import pycalver2.version as v2version import pycalver2.version as v2version
import pycalver2.patterns as v2patterns import pycalver2.patterns as v2patterns
from pycalver import parse from pycalver import parse
from pycalver import config from pycalver import config
from pycalver import rewrite as v1rewrite
logger = logging.getLogger("pycalver2.rewrite") logger = logging.getLogger("pycalver2.rewrite")
@ -68,23 +68,22 @@ def rfd_from_content(
new_vinfo : v2version.VersionInfo, new_vinfo : v2version.VersionInfo,
content : str, content : str,
) -> v1rewrite.RewrittenFileData: ) -> v1rewrite.RewrittenFileData:
# TODO reenable doctest r"""Rewrite pattern occurrences with version string.
# r"""Rewrite pattern occurrences with version string.
# >>> new_vinfo = version.parse_version_info("v201809.0123") >>> new_vinfo = v2version.parse_version_info("v201809.0123")
# >>> pattern_strs = ['__version__ = "{pycalver}"'] >>> pattern_strs = ['__version__ = "vYYYY0M.BUILD[-TAG]"']
# >>> content = '__version__ = "v201809.0001-alpha"' >>> content = '__version__ = "v201809.0001-alpha"'
# >>> rfd = rfd_from_content(pattern_strs, new_vinfo, content) >>> rfd = rfd_from_content(pattern_strs, new_vinfo, content)
# >>> rfd.new_lines >>> rfd.new_lines
# ['__version__ = "v201809.0123"'] ['__version__ = "v201809.0123"']
# >>> >>>
# >>> new_vinfo = version.parse_version_info("v1.2.3", "v{semver}") >>> new_vinfo = v2version.parse_version_info("v1.2.3", "vMAJOR.MINOR.PATCH")
# >>> pattern_strs = ['__version__ = "v{semver}"'] >>> pattern_strs = ['__version__ = "vMAJOR.MINOR.PATCH"']
# >>> content = '__version__ = "v1.2.2"' >>> content = '__version__ = "v1.2.2"'
# >>> rfd = rfd_from_content(pattern_strs, new_vinfo, content) >>> rfd = rfd_from_content(pattern_strs, new_vinfo, content)
# >>> rfd.new_lines >>> rfd.new_lines
# ['__version__ = "v1.2.3"'] ['__version__ = "v1.2.3"']
# """ """
line_sep = v1rewrite.detect_line_sep(content) line_sep = v1rewrite.detect_line_sep(content)
old_lines = content.split(line_sep) old_lines = content.split(line_sep)
new_lines = rewrite_lines(pattern_strs, new_vinfo, old_lines) new_lines = rewrite_lines(pattern_strs, new_vinfo, old_lines)
@ -95,26 +94,25 @@ def iter_rewritten(
file_patterns: config.PatternsByGlob, file_patterns: config.PatternsByGlob,
new_vinfo : v2version.VersionInfo, new_vinfo : v2version.VersionInfo,
) -> typ.Iterable[v1rewrite.RewrittenFileData]: ) -> typ.Iterable[v1rewrite.RewrittenFileData]:
# TODO reenable doctest r'''Iterate over files with version string replaced.
# r'''Iterate over files with version string replaced.
# >>> file_patterns = {"src/pycalver/__init__.py": ['__version__ = "{pycalver}"']} >>> file_patterns = {"src/pycalver/__init__.py": ['__version__ = "vYYYY0M.BUILD[-TAG]"']}
# >>> new_vinfo = version.parse_version_info("v201809.0123") >>> new_vinfo = v2version.parse_version_info("v201809.0123")
# >>> rewritten_datas = iter_rewritten(file_patterns, new_vinfo) >>> rewritten_datas = iter_rewritten(file_patterns, new_vinfo)
# >>> rfd = list(rewritten_datas)[0] >>> rfd = list(rewritten_datas)[0]
# >>> assert rfd.new_lines == [ >>> assert rfd.new_lines == [
# ... '# This file is part of the pycalver project', ... '# This file is part of the pycalver project',
# ... '# https://gitlab.com/mbarkhau/pycalver', ... '# https://github.com/mbarkhau/pycalver',
# ... '#', ... '#',
# ... '# Copyright (c) 2019 Manuel Barkhau (mbarkhau@gmail.com) - MIT License', ... '# Copyright (c) 2018-2020 Manuel Barkhau (mbarkhau@gmail.com) - MIT License',
# ... '# SPDX-License-Identifier: MIT', ... '# SPDX-License-Identifier: MIT',
# ... '"""PyCalVer: CalVer for Python Packages."""', ... '"""PyCalVer: CalVer for Python Packages."""',
# ... '', ... '',
# ... '__version__ = "v201809.0123"', ... '__version__ = "v201809.0123"',
# ... '', ... '',
# ... ] ... ]
# >>> >>>
# ''' '''
fobj: typ.IO[str] fobj: typ.IO[str]
@ -130,20 +128,19 @@ def diff(
new_vinfo : v2version.VersionInfo, new_vinfo : v2version.VersionInfo,
file_patterns: config.PatternsByGlob, file_patterns: config.PatternsByGlob,
) -> str: ) -> str:
# TODO reenable doctest r"""Generate diffs of rewritten files.
# r"""Generate diffs of rewritten files.
# >>> new_vinfo = version.parse_version_info("v201809.0123") >>> new_vinfo = v2version.parse_version_info("v201809.0123")
# >>> file_patterns = {"src/pycalver/__init__.py": ['__version__ = "{pycalver}"']} >>> file_patterns = {"src/pycalver/__init__.py": ['__version__ = "vYYYY0M.BUILD[-TAG]"']}
# >>> diff_str = diff(new_vinfo, file_patterns) >>> diff_str = diff(new_vinfo, file_patterns)
# >>> lines = diff_str.split("\n") >>> lines = diff_str.split("\n")
# >>> lines[:2] >>> lines[:2]
# ['--- src/pycalver/__init__.py', '+++ src/pycalver/__init__.py'] ['--- src/pycalver/__init__.py', '+++ src/pycalver/__init__.py']
# >>> assert lines[6].startswith('-__version__ = "v2') >>> assert lines[6].startswith('-__version__ = "v2')
# >>> assert not lines[6].startswith('-__version__ = "v201809.0123"') >>> assert not lines[6].startswith('-__version__ = "v201809.0123"')
# >>> lines[7] >>> lines[7]
# '+__version__ = "v201809.0123"' '+__version__ = "v201809.0123"'
# """ """
full_diff = "" full_diff = ""
fobj: typ.IO[str] fobj: typ.IO[str]

View file

@ -5,6 +5,7 @@ from __future__ import absolute_import
from __future__ import unicode_literals from __future__ import unicode_literals
import copy import copy
import datetime as dt
from test import util from test import util
from pycalver import config from pycalver import config
@ -135,3 +136,26 @@ def test_v1_optional_release():
assert len(new_lines) == len(old_lines) assert len(new_lines) == len(old_lines)
assert "2019.0004-beta" not in "\n".join(old_lines) assert "2019.0004-beta" not in "\n".join(old_lines)
assert "2019.0004-beta" in "\n".join(new_lines) assert "2019.0004-beta" in "\n".join(new_lines)
def test_v2_optional_release():
old_lines = OPTIONAL_RELEASE_FIXTURE.splitlines()
pattern = "YYYY.BUILD[-TAG]"
patterns = ['__version__ = "YYYY.BUILD[-TAG]"']
new_vinfo = v2version.parse_version_info("2019.0003", pattern)
new_lines = v2rewrite.rewrite_lines(patterns, new_vinfo, old_lines)
assert len(new_lines) == len(old_lines)
assert "2019.0003" not in "\n".join(old_lines)
new_text = "\n".join(new_lines)
assert "2019.0003" in new_text
assert '__version__ = "2019.0003"' in new_text
new_vinfo = v2version.parse_version_info("2019.0004-beta", pattern)
new_lines = v2rewrite.rewrite_lines(patterns, new_vinfo, old_lines)
# make sure optional release tag is added back on
assert len(new_lines) == len(old_lines)
assert "2019.0004-beta" not in "\n".join(old_lines)
assert "2019.0004-beta" in "\n".join(new_lines)