mirror of
https://github.com/TECHNOFAB11/bumpver.git
synced 2025-12-12 14:30:09 +01:00
WIP: more testing
This commit is contained in:
parent
5108837f45
commit
0a3638a62f
6 changed files with 94 additions and 7 deletions
|
|
@ -32,8 +32,8 @@ class Config(typ.NamedTuple):
|
|||
MaybeConfig = typ.Optional[Config]
|
||||
|
||||
|
||||
def _parse_buffer(cfg_buffer: io.StringIO) -> MaybeConfig:
|
||||
cfg_parser = configparser.RawConfigParser("")
|
||||
def parse_buffer(cfg_buffer: io.StringIO) -> MaybeConfig:
|
||||
cfg_parser = configparser.RawConfigParser()
|
||||
cfg_parser.readfp(cfg_buffer)
|
||||
|
||||
if "pycalver" not in cfg_parser:
|
||||
|
|
@ -99,7 +99,7 @@ def parse(config_file="setup.cfg") -> MaybeConfig:
|
|||
cfg_buffer.write(fh.read())
|
||||
|
||||
cfg_buffer.seek(0)
|
||||
return _parse_buffer(cfg_buffer)
|
||||
return parse_buffer(cfg_buffer)
|
||||
|
||||
|
||||
def default_config_lines() -> typ.List[str]:
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ VALID_RELESE_VALUES = ("alpha", "beta", "dev", "rc", "post")
|
|||
|
||||
|
||||
# https://regex101.com/r/fnj60p/10
|
||||
PYCALVER_RE: typ.re.Pattern[str] = re.compile(r"""
|
||||
PYCALVER_RE: typ.Pattern[str] = re.compile(r"""
|
||||
\b
|
||||
(?P<version>
|
||||
(?P<calver>
|
||||
|
|
@ -75,6 +75,8 @@ class VersionInfo(typ.NamedTuple):
|
|||
|
||||
def parse_version_info(version: str) -> VersionInfo:
|
||||
match = PYCALVER_RE.match(version)
|
||||
if match is None:
|
||||
raise ValueError(f"Invalid pycalver: {version}")
|
||||
pep440_version = str(pkg_resources.parse_version(version))
|
||||
return VersionInfo(pep440_version=pep440_version, **match.groupdict())
|
||||
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ log = logging.getLogger("pycalver.rewrite")
|
|||
|
||||
def rewrite(
|
||||
new_version: str,
|
||||
file_patterns: typ.Dict[str, str],
|
||||
file_patterns: typ.Dict[str, typ.List[str]],
|
||||
dry=False,
|
||||
verbose=False,
|
||||
) -> None:
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@
|
|||
# SPDX-License-Identifier: MIT
|
||||
|
||||
import logging
|
||||
import typing as typ
|
||||
import datetime as dt
|
||||
|
||||
from . import lex_id
|
||||
|
|
@ -34,6 +35,8 @@ def bump(old_version: str, *, release: str=None) -> str:
|
|||
new_calver = old_ver.calver
|
||||
|
||||
new_build = lex_id.next_id(old_ver.build[1:])
|
||||
new_release: typ.Optional[str] = None
|
||||
|
||||
if release is None:
|
||||
if old_ver.release:
|
||||
# preserve existing release
|
||||
|
|
|
|||
1
test/test_cli.py
Normal file
1
test/test_cli.py
Normal file
|
|
@ -0,0 +1 @@
|
|||
from pycalver import __main__
|
||||
|
|
@ -1,5 +1,86 @@
|
|||
import io
|
||||
|
||||
from pycalver import config
|
||||
|
||||
|
||||
def test_parse():
|
||||
pass
|
||||
def test_parse_default_config():
|
||||
buf = io.StringIO()
|
||||
for line in config.default_config_lines():
|
||||
buf.write(line + "\n")
|
||||
|
||||
buf.seek(0)
|
||||
cfg = config.parse_buffer(buf)
|
||||
|
||||
assert cfg
|
||||
assert cfg.current_version.endswith(".0001-dev")
|
||||
assert cfg.tag
|
||||
assert cfg.commit
|
||||
|
||||
assert "setup.py" in cfg.file_patterns
|
||||
assert "setup.cfg" in cfg.file_patterns
|
||||
assert "README.rst" in cfg.file_patterns
|
||||
|
||||
|
||||
def test_parse(tmpdir):
|
||||
setup_path = tmpdir.mkdir("minimal").join("setup.cfg")
|
||||
setup_path.write("\n".join((
|
||||
"[pycalver]",
|
||||
f"current_version = v201808.0001-dev",
|
||||
"commit = False",
|
||||
"tag = False",
|
||||
"",
|
||||
"[pycalver:file:setup.cfg]",
|
||||
"patterns = ",
|
||||
" current_version = {version}",
|
||||
)))
|
||||
|
||||
cfg = config.parse(str(setup_path))
|
||||
|
||||
assert cfg
|
||||
assert cfg.current_version == "v201808.0001-dev"
|
||||
assert not cfg.tag
|
||||
assert not cfg.commit
|
||||
|
||||
assert cfg.file_patterns == {"setup.cfg": ["current_version = {version}"]}
|
||||
|
||||
|
||||
def test_parse_config_missing(tmpdir):
|
||||
cfg = config.parse("does_not_exist/setup.cfg")
|
||||
assert cfg is None
|
||||
|
||||
setup_path = tmpdir.mkdir("fail").join("setup.cfg")
|
||||
|
||||
cfg = config.parse(str(setup_path))
|
||||
assert cfg is None
|
||||
|
||||
|
||||
def test_parse_empty_config(tmpdir):
|
||||
setup_path = tmpdir.mkdir("fail").join("setup.cfg")
|
||||
setup_path.write("")
|
||||
|
||||
cfg = config.parse(str(setup_path))
|
||||
assert cfg is None
|
||||
|
||||
|
||||
def test_parse_missing_version(tmpdir):
|
||||
setup_path = tmpdir.mkdir("fail").join("setup.cfg")
|
||||
setup_path.write("\n".join((
|
||||
"[pycalver]",
|
||||
# f"current_version = v201808.0001-dev",
|
||||
"commit = False",
|
||||
)))
|
||||
|
||||
cfg = config.parse(str(setup_path))
|
||||
assert cfg is None
|
||||
|
||||
|
||||
def test_parse_invalid_version(tmpdir):
|
||||
setup_path = tmpdir.mkdir("fail").join("setup.cfg")
|
||||
setup_path.write("\n".join((
|
||||
"[pycalver]",
|
||||
f"current_version = 0.1.0",
|
||||
"commit = False",
|
||||
)))
|
||||
|
||||
cfg = config.parse(str(setup_path))
|
||||
assert cfg is None
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue