from pycalver import config from pycalver import rewrite from . import util REWRITE_FIXTURE = """ # SPDX-License-Identifier: MIT __version__ = "v201809.0002-beta" """ def test_rewrite_lines(): old_lines = REWRITE_FIXTURE.splitlines() patterns = ['__version__ = "{pycalver}"'] new_lines = rewrite.rewrite_lines(patterns, "v201911.0003", old_lines) assert len(new_lines) == len(old_lines) assert "v201911.0003" not in "\n".join(old_lines) assert "v201911.0003" in "\n".join(new_lines) def test_rewrite_final(): # Patterns written with {release_tag} placeholder preserve # the release tag even if the new version is -final old_lines = REWRITE_FIXTURE.splitlines() patterns = ['__version__ = "v{year}{month}.{build_no}-{release_tag}"'] new_lines = rewrite.rewrite_lines(patterns, "v201911.0003", old_lines) assert len(new_lines) == len(old_lines) assert "v201911.0003" not in "\n".join(old_lines) assert "None" not in "\n".join(new_lines) assert "v201911.0003-final" in "\n".join(new_lines) def test_iter_file_paths(): with util.Project(project="a") as project: ctx = config.init_project_ctx(project.dir) cfg = config.parse(ctx) assert cfg file_paths = { str(file_path) for file_path, patterns in rewrite._iter_file_paths(cfg.file_patterns) } assert file_paths == { "pycalver.toml", "README.md", } def test_iter_file_globs(): with util.Project(project="b") as project: ctx = config.init_project_ctx(project.dir) cfg = config.parse(ctx) assert cfg file_paths = { str(file_path) for file_path, patterns in rewrite._iter_file_paths(cfg.file_patterns) } assert file_paths == { "setup.cfg", "setup.py", "README.rst", "src/module_v1/__init__.py", "src/module_v2/__init__.py", }