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]
|
MaybeConfig = typ.Optional[Config]
|
||||||
|
|
||||||
|
|
||||||
def _parse_buffer(cfg_buffer: io.StringIO) -> MaybeConfig:
|
def parse_buffer(cfg_buffer: io.StringIO) -> MaybeConfig:
|
||||||
cfg_parser = configparser.RawConfigParser("")
|
cfg_parser = configparser.RawConfigParser()
|
||||||
cfg_parser.readfp(cfg_buffer)
|
cfg_parser.readfp(cfg_buffer)
|
||||||
|
|
||||||
if "pycalver" not in cfg_parser:
|
if "pycalver" not in cfg_parser:
|
||||||
|
|
@ -99,7 +99,7 @@ def parse(config_file="setup.cfg") -> MaybeConfig:
|
||||||
cfg_buffer.write(fh.read())
|
cfg_buffer.write(fh.read())
|
||||||
|
|
||||||
cfg_buffer.seek(0)
|
cfg_buffer.seek(0)
|
||||||
return _parse_buffer(cfg_buffer)
|
return parse_buffer(cfg_buffer)
|
||||||
|
|
||||||
|
|
||||||
def default_config_lines() -> typ.List[str]:
|
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
|
# https://regex101.com/r/fnj60p/10
|
||||||
PYCALVER_RE: typ.re.Pattern[str] = re.compile(r"""
|
PYCALVER_RE: typ.Pattern[str] = re.compile(r"""
|
||||||
\b
|
\b
|
||||||
(?P<version>
|
(?P<version>
|
||||||
(?P<calver>
|
(?P<calver>
|
||||||
|
|
@ -75,6 +75,8 @@ class VersionInfo(typ.NamedTuple):
|
||||||
|
|
||||||
def parse_version_info(version: str) -> VersionInfo:
|
def parse_version_info(version: str) -> VersionInfo:
|
||||||
match = PYCALVER_RE.match(version)
|
match = PYCALVER_RE.match(version)
|
||||||
|
if match is None:
|
||||||
|
raise ValueError(f"Invalid pycalver: {version}")
|
||||||
pep440_version = str(pkg_resources.parse_version(version))
|
pep440_version = str(pkg_resources.parse_version(version))
|
||||||
return VersionInfo(pep440_version=pep440_version, **match.groupdict())
|
return VersionInfo(pep440_version=pep440_version, **match.groupdict())
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@ log = logging.getLogger("pycalver.rewrite")
|
||||||
|
|
||||||
def rewrite(
|
def rewrite(
|
||||||
new_version: str,
|
new_version: str,
|
||||||
file_patterns: typ.Dict[str, str],
|
file_patterns: typ.Dict[str, typ.List[str]],
|
||||||
dry=False,
|
dry=False,
|
||||||
verbose=False,
|
verbose=False,
|
||||||
) -> None:
|
) -> None:
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@
|
||||||
# SPDX-License-Identifier: MIT
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
|
import typing as typ
|
||||||
import datetime as dt
|
import datetime as dt
|
||||||
|
|
||||||
from . import lex_id
|
from . import lex_id
|
||||||
|
|
@ -34,6 +35,8 @@ def bump(old_version: str, *, release: str=None) -> str:
|
||||||
new_calver = old_ver.calver
|
new_calver = old_ver.calver
|
||||||
|
|
||||||
new_build = lex_id.next_id(old_ver.build[1:])
|
new_build = lex_id.next_id(old_ver.build[1:])
|
||||||
|
new_release: typ.Optional[str] = None
|
||||||
|
|
||||||
if release is None:
|
if release is None:
|
||||||
if old_ver.release:
|
if old_ver.release:
|
||||||
# preserve existing 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
|
from pycalver import config
|
||||||
|
|
||||||
|
|
||||||
def test_parse():
|
def test_parse_default_config():
|
||||||
pass
|
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