mirror of
https://github.com/TECHNOFAB11/bumpver.git
synced 2025-12-12 22:40:09 +01:00
weeknum testing
This commit is contained in:
parent
7b06012180
commit
ec4d051e7c
4 changed files with 125 additions and 93 deletions
|
|
@ -23,27 +23,12 @@ The recommended approach to using `pylint-ignore` is:
|
||||||
|
|
||||||
# Overview
|
# Overview
|
||||||
|
|
||||||
- [W0511: fixme (7x)](#w0511-fixme)
|
- [W0511: fixme (5x)](#w0511-fixme)
|
||||||
- [W0703: broad-except (1x)](#w0703-broad-except)
|
- [W0703: broad-except (1x)](#w0703-broad-except)
|
||||||
|
|
||||||
|
|
||||||
# W0511: fixme
|
# W0511: fixme
|
||||||
|
|
||||||
## File test/test_patterns.py - Line 14 - W0511 (fixme)
|
|
||||||
|
|
||||||
- `message: TODO (mb 2020-09-06): test for v2patterns`
|
|
||||||
- `author : Manuel Barkhau <mbarkhau@gmail.com>`
|
|
||||||
- `date : 2020-09-18T17:01:05`
|
|
||||||
|
|
||||||
```
|
|
||||||
12: from pycalver import v2patterns
|
|
||||||
13:
|
|
||||||
> 14: # TODO (mb 2020-09-06): test for v2patterns
|
|
||||||
15:
|
|
||||||
16: V2_PART_PATTERN_CASES = [
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
## File src/pycalver/vcs.py - Line 80 - W0511 (fixme)
|
## File src/pycalver/vcs.py - Line 80 - W0511 (fixme)
|
||||||
|
|
||||||
- `message: TODO (mb 2018-11-15): Detect encoding of output? Use chardet?`
|
- `message: TODO (mb 2018-11-15): Detect encoding of output? Use chardet?`
|
||||||
|
|
@ -61,23 +46,6 @@ The recommended approach to using `pylint-ignore` is:
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
## File test/test_version.py - Line 168 - W0511 (fixme)
|
|
||||||
|
|
||||||
- `message: TODO (mb 2020-09-06): add tests for new style patterns`
|
|
||||||
- `author : Manuel Barkhau <mbarkhau@gmail.com>`
|
|
||||||
- `date : 2020-09-18T17:01:05`
|
|
||||||
|
|
||||||
```
|
|
||||||
163: def vnfo(**field_values):
|
|
||||||
...
|
|
||||||
166:
|
|
||||||
167: PARSE_VERSION_TEST_CASES = [
|
|
||||||
> 168: # TODO (mb 2020-09-06): add tests for new style patterns
|
|
||||||
169: # ["YYYY.MM.DD" , "2017.06.07", vnfo(year="2017", month="06", dom="07")],
|
|
||||||
170: ["{year}.{month}.{dom}" , "2017.06.07", vnfo(year="2017", month="06", dom="07")],
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
## File test/test_config.py - Line 170 - W0511 (fixme)
|
## File test/test_config.py - Line 170 - W0511 (fixme)
|
||||||
|
|
||||||
- `message: TODO (mb 2020-09-18):`
|
- `message: TODO (mb 2020-09-18):`
|
||||||
|
|
@ -90,25 +58,8 @@ The recommended approach to using `pylint-ignore` is:
|
||||||
168: assert "setup.cfg" in cfg.file_patterns
|
168: assert "setup.cfg" in cfg.file_patterns
|
||||||
169:
|
169:
|
||||||
> 170: # TODO (mb 2020-09-18):
|
> 170: # TODO (mb 2020-09-18):
|
||||||
171: # raw_patterns_by_file = _parse_raw_patterns_by_file(cfg)
|
171: # raw_patterns_by_filepath = _parse_raw_patterns_by_filepath(cfg)
|
||||||
172: # assert raw_patterns_by_file["setup.py" ] == ["vYYYY0M.BUILD[-RELEASE]", "YYYY0M.BLD[PYTAGNUM]"]
|
172: # assert raw_patterns_by_filepath["setup.py" ] == ["vYYYY0M.BUILD[-RELEASE]", "YYYY0M.BLD[PYTAGNUM]"]
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
## File src/pycalver/__main__.py - Line 259 - W0511 (fixme)
|
|
||||||
|
|
||||||
- `message: TODO (mb 2020-09-18): Investigate error messages`
|
|
||||||
- `author : Manuel Barkhau <mbarkhau@gmail.com>`
|
|
||||||
- `date : 2020-09-19T16:24:10`
|
|
||||||
|
|
||||||
```
|
|
||||||
231: def _bump(
|
|
||||||
...
|
|
||||||
257: sys.exit(1)
|
|
||||||
258: except Exception as ex:
|
|
||||||
> 259: # TODO (mb 2020-09-18): Investigate error messages
|
|
||||||
260: logger.error(str(ex))
|
|
||||||
261: sys.exit(1)
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -129,7 +80,24 @@ The recommended approach to using `pylint-ignore` is:
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
## File src/pycalver/v2version.py - Line 616 - W0511 (fixme)
|
## File src/pycalver/__main__.py - Line 300 - W0511 (fixme)
|
||||||
|
|
||||||
|
- `message: TODO (mb 2020-09-18): Investigate error messages`
|
||||||
|
- `author : Manuel Barkhau <mbarkhau@gmail.com>`
|
||||||
|
- `date : 2020-09-19T16:24:10`
|
||||||
|
|
||||||
|
```
|
||||||
|
270: def _bump(
|
||||||
|
...
|
||||||
|
298: sys.exit(1)
|
||||||
|
299: except Exception as ex:
|
||||||
|
> 300: # TODO (mb 2020-09-18): Investigate error messages
|
||||||
|
301: logger.error(str(ex))
|
||||||
|
302: sys.exit(1)
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
## File src/pycalver/v2version.py - Line 617 - W0511 (fixme)
|
||||||
|
|
||||||
- `message: TODO (mb 2020-09-20): New Rollover Behaviour:`
|
- `message: TODO (mb 2020-09-20): New Rollover Behaviour:`
|
||||||
- `author : Manuel Barkhau <mbarkhau@gmail.com>`
|
- `author : Manuel Barkhau <mbarkhau@gmail.com>`
|
||||||
|
|
@ -138,29 +106,30 @@ The recommended approach to using `pylint-ignore` is:
|
||||||
```
|
```
|
||||||
578: def incr(
|
578: def incr(
|
||||||
...
|
...
|
||||||
614: )
|
615: )
|
||||||
615:
|
616:
|
||||||
> 616: # TODO (mb 2020-09-20): New Rollover Behaviour:
|
> 617: # TODO (mb 2020-09-20): New Rollover Behaviour:
|
||||||
617: # Reset major, minor, patch to zero if any part to the left of it is incremented
|
618: # Reset major, minor, patch to zero if any part to the left of it is incremented
|
||||||
618:
|
619:
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
# W0703: broad-except
|
# W0703: broad-except
|
||||||
|
|
||||||
## File src/pycalver/__main__.py - Line 258 - W0703 (broad-except)
|
## File src/pycalver/__main__.py - Line 299 - W0703 (broad-except)
|
||||||
|
|
||||||
- `message: Catching too general exception Exception`
|
- `message: Catching too general exception Exception`
|
||||||
- `author : Manuel Barkhau <mbarkhau@gmail.com>`
|
- `author : Manuel Barkhau <mbarkhau@gmail.com>`
|
||||||
- `date : 2020-09-05T14:30:17`
|
- `date : 2020-09-05T14:30:17`
|
||||||
|
|
||||||
```
|
```
|
||||||
231: def _bump(
|
270: def _bump(
|
||||||
...
|
...
|
||||||
256: logger.error(str(ex))
|
297: logger.error(str(ex))
|
||||||
257: sys.exit(1)
|
298: sys.exit(1)
|
||||||
> 258: except Exception as ex:
|
> 299: except Exception as ex:
|
||||||
259: # TODO (mb 2020-09-18): Investigate error messages
|
300: # TODO (mb 2020-09-18): Investigate error messages
|
||||||
260: logger.error(str(ex))
|
301: logger.error(str(ex))
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -66,13 +66,13 @@ VALID_RELEASE_VALUES = ("alpha", "beta", "dev", "rc", "post", "final")
|
||||||
_current_date = dt.date.today().isoformat()
|
_current_date = dt.date.today().isoformat()
|
||||||
|
|
||||||
|
|
||||||
def _validate_date(date: typ.Optional[str], pin_date: bool) -> dt.date:
|
def _validate_date(date: typ.Optional[str], pin_date: bool) -> typ.Optional[dt.date]:
|
||||||
if date and pin_date:
|
if date and pin_date:
|
||||||
logger.error(f"Can only use either --pin-date or --date='{date}', not both.")
|
logger.error(f"Can only use either --pin-date or --date='{date}', not both.")
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
if date is None:
|
if date is None:
|
||||||
return
|
return None
|
||||||
|
|
||||||
try:
|
try:
|
||||||
dt_val = dt.datetime.strptime(date, "%Y-%m-%d")
|
dt_val = dt.datetime.strptime(date, "%Y-%m-%d")
|
||||||
|
|
|
||||||
|
|
@ -109,12 +109,12 @@ def test_incr_default(runner):
|
||||||
cmd = ['test', "-vv", "--pin-date", "--release", "beta", old_version]
|
cmd = ['test', "-vv", "--pin-date", "--release", "beta", old_version]
|
||||||
result = runner.invoke(cli, cmd)
|
result = runner.invoke(cli, cmd)
|
||||||
assert result.exit_code == 0
|
assert result.exit_code == 0
|
||||||
assert f"Version: v201701.0005-beta\n" in result.output
|
assert "Version: v201701.0005-beta\n" in result.output
|
||||||
|
|
||||||
cmd = ['test', "-vv", "--pin-date", "--release", "beta", old_version, "vYYYY0M.BUILD[-RELEASE]"]
|
cmd = ['test', "-vv", "--pin-date", "--release", "beta", old_version, "vYYYY0M.BUILD[-RELEASE]"]
|
||||||
result = runner.invoke(cli, cmd)
|
result = runner.invoke(cli, cmd)
|
||||||
assert result.exit_code == 0
|
assert result.exit_code == 0
|
||||||
assert f"Version: v201701.1005-beta\n" in result.output
|
assert "Version: v201701.1005-beta\n" in result.output
|
||||||
|
|
||||||
|
|
||||||
def test_incr_pin_date(runner):
|
def test_incr_pin_date(runner):
|
||||||
|
|
@ -613,6 +613,58 @@ def test_v2_get_diff(runner):
|
||||||
assert '+current_version = "v202010.1003-beta"' in diff_lines
|
assert '+current_version = "v202010.1003-beta"' in diff_lines
|
||||||
|
|
||||||
|
|
||||||
|
WEEKNUM_TEST_CASES = [
|
||||||
|
# 2020-12-26 Sat
|
||||||
|
("2020-12-26", "YYYY.0W", "2020.51"),
|
||||||
|
("2020-12-26", "YYYY.0U", "2020.51"),
|
||||||
|
("2020-12-26", "GGGG.0V", "2020.52"),
|
||||||
|
# 2020-12-27 Sun
|
||||||
|
("2020-12-27", "YYYY.0W", "2020.51"),
|
||||||
|
("2020-12-27", "YYYY.0U", "2020.52"),
|
||||||
|
("2020-12-27", "GGGG.0V", "2020.52"),
|
||||||
|
# 2020-12-28 Mon
|
||||||
|
("2020-12-28", "YYYY.0W", "2020.52"),
|
||||||
|
("2020-12-28", "YYYY.0U", "2020.52"),
|
||||||
|
("2020-12-28", "GGGG.0V", "2020.53"),
|
||||||
|
# 2020-12-29 Tue
|
||||||
|
("2020-12-29", "YYYY.0W", "2020.52"),
|
||||||
|
("2020-12-29", "YYYY.0U", "2020.52"),
|
||||||
|
("2020-12-29", "GGGG.0V", "2020.53"),
|
||||||
|
# 2020-12-30 Wed
|
||||||
|
("2020-12-30", "YYYY.0W", "2020.52"),
|
||||||
|
("2020-12-30", "YYYY.0U", "2020.52"),
|
||||||
|
("2020-12-30", "GGGG.0V", "2020.53"),
|
||||||
|
# 2020-12-31 Thu
|
||||||
|
("2020-12-31", "YYYY.0W", "2020.52"),
|
||||||
|
("2020-12-31", "YYYY.0U", "2020.52"),
|
||||||
|
("2020-12-31", "GGGG.0V", "2020.53"),
|
||||||
|
# 2021-01-01 Fri
|
||||||
|
("2021-01-01", "YYYY.0W", "2021.00"),
|
||||||
|
("2021-01-01", "YYYY.0U", "2021.00"),
|
||||||
|
("2021-01-01", "GGGG.0V", "2020.53"),
|
||||||
|
# 2021-01-02 Sat
|
||||||
|
("2021-01-02", "YYYY.0W", "2021.00"),
|
||||||
|
("2021-01-02", "YYYY.0U", "2021.00"),
|
||||||
|
("2021-01-02", "GGGG.0V", "2020.53"),
|
||||||
|
# 2021-01-03 Sun
|
||||||
|
("2021-01-03", "YYYY.0W", "2021.00"),
|
||||||
|
("2021-01-03", "YYYY.0U", "2021.01"),
|
||||||
|
("2021-01-03", "GGGG.0V", "2020.53"),
|
||||||
|
# 2021-01-04 Mon
|
||||||
|
("2021-01-04", "YYYY.0W", "2021.01"),
|
||||||
|
("2021-01-04", "YYYY.0U", "2021.01"),
|
||||||
|
("2021-01-04", "GGGG.0V", "2021.01"),
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize("date, pattern, expected", WEEKNUM_TEST_CASES)
|
||||||
|
def test_weeknum(date, pattern, expected, runner):
|
||||||
|
cmd = shlex.split(f"test -vv --date {date} 2020.40 {pattern}")
|
||||||
|
result = runner.invoke(cli, cmd)
|
||||||
|
assert result.exit_code == 0
|
||||||
|
assert "New Version: " + expected in result.output
|
||||||
|
|
||||||
|
|
||||||
def test_hg_commit_message(runner, caplog):
|
def test_hg_commit_message(runner, caplog):
|
||||||
_add_project_files("README.md", "setup.cfg")
|
_add_project_files("README.md", "setup.cfg")
|
||||||
result = runner.invoke(cli, ['init', "-vv"])
|
result = runner.invoke(cli, ['init', "-vv"])
|
||||||
|
|
|
||||||
|
|
@ -13,8 +13,7 @@ from pycalver import version
|
||||||
from pycalver import v1version
|
from pycalver import v1version
|
||||||
from pycalver import v2version
|
from pycalver import v2version
|
||||||
from pycalver import v1patterns
|
from pycalver import v1patterns
|
||||||
|
from pycalver import v2patterns
|
||||||
# import pycalver2.patterns as v2patterns
|
|
||||||
|
|
||||||
# pylint:disable=protected-access ; allowed for test code
|
# pylint:disable=protected-access ; allowed for test code
|
||||||
|
|
||||||
|
|
@ -160,46 +159,58 @@ def test_part_field_mapping_v1():
|
||||||
assert not any(b_extra_fields), sorted(b_extra_fields)
|
assert not any(b_extra_fields), sorted(b_extra_fields)
|
||||||
|
|
||||||
|
|
||||||
def vnfo(**field_values):
|
def v1vnfo(**field_values):
|
||||||
return v1version._parse_field_values(field_values)
|
return v1version._parse_field_values(field_values)
|
||||||
|
|
||||||
|
|
||||||
PARSE_VERSION_TEST_CASES = [
|
def v2vnfo(**field_values):
|
||||||
# TODO (mb 2020-09-06): add tests for new style patterns
|
return v2version._parse_version_info(field_values)
|
||||||
# ["YYYY.MM.DD" , "2017.06.07", vnfo(year="2017", month="06", dom="07")],
|
|
||||||
["{year}.{month}.{dom}" , "2017.06.07", vnfo(year="2017", month="06", dom="07")],
|
|
||||||
["{year}.{month}.{dom_short}" , "2017.06.7" , vnfo(year="2017", month="06", dom="7" )],
|
PARSE_V1_VERSION_TEST_CASES = [
|
||||||
["{year}.{month}.{dom_short}" , "2017.06.7" , vnfo(year="2017", month="06", dom="7" )],
|
["{year}.{month}.{dom}" , "2017.06.07", v1vnfo(year="2017", month="06", dom="07")],
|
||||||
["{year}.{month_short}.{dom_short}", "2017.6.7" , vnfo(year="2017", month="6" , dom="7" )],
|
["{year}.{month}.{dom_short}" , "2017.06.7" , v1vnfo(year="2017", month="06", dom="7" )],
|
||||||
|
["{year}.{month}.{dom_short}" , "2017.06.7" , v1vnfo(year="2017", month="06", dom="7" )],
|
||||||
|
["{year}.{month_short}.{dom_short}", "2017.6.7" , v1vnfo(year="2017", month="6" , dom="7" )],
|
||||||
["{year}.{month}.{dom}" , "2017.6.07" , None],
|
["{year}.{month}.{dom}" , "2017.6.07" , None],
|
||||||
["{year}.{month}.{dom}" , "2017.06.7" , None],
|
["{year}.{month}.{dom}" , "2017.06.7" , None],
|
||||||
["{year}.{month_short}.{dom}" , "2017.06.7" , None],
|
["{year}.{month_short}.{dom}" , "2017.06.7" , None],
|
||||||
["{year}.{month}.{dom_short}" , "2017.6.07" , None],
|
["{year}.{month}.{dom_short}" , "2017.6.07" , None],
|
||||||
["{year}.{month_short}.{MINOR}" , "2017.6.7" , vnfo(year="2017", month="6" , minor="7" )],
|
["{year}.{month_short}.{MINOR}" , "2017.6.7" , v1vnfo(year="2017", month="6" , minor="7" )],
|
||||||
["{year}.{month}.{MINOR}" , "2017.06.7" , vnfo(year="2017", month="06", minor="7" )],
|
["{year}.{month}.{MINOR}" , "2017.06.7" , v1vnfo(year="2017", month="06", minor="7" )],
|
||||||
["{year}.{month}.{MINOR}" , "2017.06.07", vnfo(year="2017", month="06", minor="07")],
|
["{year}.{month}.{MINOR}" , "2017.06.07", v1vnfo(year="2017", month="06", minor="07")],
|
||||||
["{year}.{month}.{MINOR}" , "2017.6.7" , None],
|
["{year}.{month}.{MINOR}" , "2017.6.7" , None],
|
||||||
|
["YYYY.0M.0D" , "2017.06.07", v2vnfo(year_y="2017", month="06", dom="07")],
|
||||||
|
["YYYY.MM.DD" , "2017.6.7" , v2vnfo(year_y="2017", month="6" , dom="7" )],
|
||||||
|
["YYYY.MM.MD" , "2017.06.07", None],
|
||||||
|
["YYYY.0M.0D" , "2017.6.7" , None],
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize("pattern_str, line, expected_vinfo", PARSE_VERSION_TEST_CASES)
|
@pytest.mark.parametrize("pattern_str, line, expected_vinfo", PARSE_V1_VERSION_TEST_CASES)
|
||||||
def test_v1_parse_versions(pattern_str, line, expected_vinfo):
|
def test_v1_parse_versions(pattern_str, line, expected_vinfo):
|
||||||
pattern = v1patterns.compile_pattern(pattern_str)
|
if "{" in pattern_str:
|
||||||
version_match = pattern.regexp.search(line)
|
pattern = v1patterns.compile_pattern(pattern_str)
|
||||||
|
version_match = pattern.regexp.search(line)
|
||||||
|
else:
|
||||||
|
pattern = v2patterns.compile_pattern(pattern_str)
|
||||||
|
version_match = pattern.regexp.search(line)
|
||||||
|
|
||||||
if expected_vinfo is None:
|
if expected_vinfo is None:
|
||||||
assert version_match is None
|
assert version_match is None
|
||||||
return
|
else:
|
||||||
|
assert version_match is not None
|
||||||
|
|
||||||
assert version_match is not None
|
version_str = version_match.group(0)
|
||||||
|
|
||||||
version_str = version_match.group(0)
|
if "{" in pattern_str:
|
||||||
version_info = v1version.parse_version_info(version_str, pattern_str)
|
version_info = v1version.parse_version_info(version_str, pattern_str)
|
||||||
|
assert version_info == expected_vinfo
|
||||||
assert version_info == expected_vinfo
|
else:
|
||||||
|
version_info = v2version.parse_version_info(version_str, pattern_str)
|
||||||
|
assert version_info == expected_vinfo
|
||||||
|
|
||||||
|
|
||||||
# def test_v2_parse_versions(pattern_str, line, expected_vinfo):
|
|
||||||
def test_v2_parse_versions():
|
def test_v2_parse_versions():
|
||||||
_vnfo = v2version.parse_version_info("v201712.0033", raw_pattern="vYYYY0M.BUILD[-RELEASE[NUM]]")
|
_vnfo = v2version.parse_version_info("v201712.0033", raw_pattern="vYYYY0M.BUILD[-RELEASE[NUM]]")
|
||||||
fvals = {'year_y': 2017, 'month': 12, 'bid': "0033"}
|
fvals = {'year_y': 2017, 'month': 12, 'bid': "0033"}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue