From 76fe72da43a0f0c4d498d30740324b4c041574bd Mon Sep 17 00:00:00 2001 From: Manuel Barkhau Date: Fri, 18 Sep 2020 17:02:03 +0000 Subject: [PATCH] reenable tests --- src/pycalver2/rewrite.py | 95 +++++++++++++++++++--------------------- test/test_rewrite.py | 24 ++++++++++ 2 files changed, 70 insertions(+), 49 deletions(-) diff --git a/src/pycalver2/rewrite.py b/src/pycalver2/rewrite.py index 5816485..03c1f86 100644 --- a/src/pycalver2/rewrite.py +++ b/src/pycalver2/rewrite.py @@ -9,11 +9,11 @@ import io import typing as typ import logging +import pycalver.rewrite as v1rewrite import pycalver2.version as v2version import pycalver2.patterns as v2patterns from pycalver import parse from pycalver import config -from pycalver import rewrite as v1rewrite logger = logging.getLogger("pycalver2.rewrite") @@ -68,23 +68,22 @@ def rfd_from_content( new_vinfo : v2version.VersionInfo, content : str, ) -> 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") - # >>> pattern_strs = ['__version__ = "{pycalver}"'] - # >>> content = '__version__ = "v201809.0001-alpha"' - # >>> rfd = rfd_from_content(pattern_strs, new_vinfo, content) - # >>> rfd.new_lines - # ['__version__ = "v201809.0123"'] - # >>> - # >>> new_vinfo = version.parse_version_info("v1.2.3", "v{semver}") - # >>> pattern_strs = ['__version__ = "v{semver}"'] - # >>> content = '__version__ = "v1.2.2"' - # >>> rfd = rfd_from_content(pattern_strs, new_vinfo, content) - # >>> rfd.new_lines - # ['__version__ = "v1.2.3"'] - # """ + >>> new_vinfo = v2version.parse_version_info("v201809.0123") + >>> pattern_strs = ['__version__ = "vYYYY0M.BUILD[-TAG]"'] + >>> content = '__version__ = "v201809.0001-alpha"' + >>> rfd = rfd_from_content(pattern_strs, new_vinfo, content) + >>> rfd.new_lines + ['__version__ = "v201809.0123"'] + >>> + >>> new_vinfo = v2version.parse_version_info("v1.2.3", "vMAJOR.MINOR.PATCH") + >>> pattern_strs = ['__version__ = "vMAJOR.MINOR.PATCH"'] + >>> content = '__version__ = "v1.2.2"' + >>> rfd = rfd_from_content(pattern_strs, new_vinfo, content) + >>> rfd.new_lines + ['__version__ = "v1.2.3"'] + """ line_sep = v1rewrite.detect_line_sep(content) old_lines = content.split(line_sep) new_lines = rewrite_lines(pattern_strs, new_vinfo, old_lines) @@ -95,26 +94,25 @@ def iter_rewritten( file_patterns: config.PatternsByGlob, new_vinfo : v2version.VersionInfo, ) -> 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}"']} - # >>> new_vinfo = version.parse_version_info("v201809.0123") - # >>> rewritten_datas = iter_rewritten(file_patterns, new_vinfo) - # >>> rfd = list(rewritten_datas)[0] - # >>> assert rfd.new_lines == [ - # ... '# This file is part of the pycalver project', - # ... '# https://gitlab.com/mbarkhau/pycalver', - # ... '#', - # ... '# Copyright (c) 2019 Manuel Barkhau (mbarkhau@gmail.com) - MIT License', - # ... '# SPDX-License-Identifier: MIT', - # ... '"""PyCalVer: CalVer for Python Packages."""', - # ... '', - # ... '__version__ = "v201809.0123"', - # ... '', - # ... ] - # >>> - # ''' + >>> file_patterns = {"src/pycalver/__init__.py": ['__version__ = "vYYYY0M.BUILD[-TAG]"']} + >>> new_vinfo = v2version.parse_version_info("v201809.0123") + >>> rewritten_datas = iter_rewritten(file_patterns, new_vinfo) + >>> rfd = list(rewritten_datas)[0] + >>> assert rfd.new_lines == [ + ... '# This file is part of the pycalver project', + ... '# https://github.com/mbarkhau/pycalver', + ... '#', + ... '# Copyright (c) 2018-2020 Manuel Barkhau (mbarkhau@gmail.com) - MIT License', + ... '# SPDX-License-Identifier: MIT', + ... '"""PyCalVer: CalVer for Python Packages."""', + ... '', + ... '__version__ = "v201809.0123"', + ... '', + ... ] + >>> + ''' fobj: typ.IO[str] @@ -130,20 +128,19 @@ def diff( new_vinfo : v2version.VersionInfo, file_patterns: config.PatternsByGlob, ) -> str: - # TODO reenable doctest - # r"""Generate diffs of rewritten files. + r"""Generate diffs of rewritten files. - # >>> new_vinfo = version.parse_version_info("v201809.0123") - # >>> file_patterns = {"src/pycalver/__init__.py": ['__version__ = "{pycalver}"']} - # >>> diff_str = diff(new_vinfo, file_patterns) - # >>> lines = diff_str.split("\n") - # >>> lines[:2] - # ['--- src/pycalver/__init__.py', '+++ src/pycalver/__init__.py'] - # >>> assert lines[6].startswith('-__version__ = "v2') - # >>> assert not lines[6].startswith('-__version__ = "v201809.0123"') - # >>> lines[7] - # '+__version__ = "v201809.0123"' - # """ + >>> new_vinfo = v2version.parse_version_info("v201809.0123") + >>> file_patterns = {"src/pycalver/__init__.py": ['__version__ = "vYYYY0M.BUILD[-TAG]"']} + >>> diff_str = diff(new_vinfo, file_patterns) + >>> lines = diff_str.split("\n") + >>> lines[:2] + ['--- src/pycalver/__init__.py', '+++ src/pycalver/__init__.py'] + >>> assert lines[6].startswith('-__version__ = "v2') + >>> assert not lines[6].startswith('-__version__ = "v201809.0123"') + >>> lines[7] + '+__version__ = "v201809.0123"' + """ full_diff = "" fobj: typ.IO[str] diff --git a/test/test_rewrite.py b/test/test_rewrite.py index 78b6432..7a90a3d 100644 --- a/test/test_rewrite.py +++ b/test/test_rewrite.py @@ -5,6 +5,7 @@ from __future__ import absolute_import from __future__ import unicode_literals import copy +import datetime as dt from test import util from pycalver import config @@ -135,3 +136,26 @@ def test_v1_optional_release(): 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) + + +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)