-
Notifications
You must be signed in to change notification settings - Fork 97
Expand file tree
/
Copy pathtest_bump.py
More file actions
101 lines (72 loc) · 2.86 KB
/
test_bump.py
File metadata and controls
101 lines (72 loc) · 2.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
import pytest
from semver import (
bump_build,
bump_major,
bump_minor,
bump_patch,
bump_prerelease,
parse_version_info,
)
def test_should_bump_major():
assert bump_major("3.4.5") == "4.0.0"
def test_should_bump_minor():
assert bump_minor("3.4.5") == "3.5.0"
def test_should_bump_patch():
assert bump_patch("3.4.5") == "3.4.6"
def test_should_versioninfo_bump_major_and_minor():
v = parse_version_info("3.4.5")
expected = parse_version_info("4.1.0")
assert v.bump_major().bump_minor() == expected
def test_should_versioninfo_bump_minor_and_patch():
v = parse_version_info("3.4.5")
expected = parse_version_info("3.5.1")
assert v.bump_minor().bump_patch() == expected
def test_should_versioninfo_bump_patch_and_prerelease():
v = parse_version_info("3.4.5-rc.1")
expected = parse_version_info("3.4.6-rc.1")
assert v.bump_patch().bump_prerelease() == expected
def test_should_versioninfo_bump_patch_and_prerelease_with_token():
v = parse_version_info("3.4.5-dev.1")
expected = parse_version_info("3.4.6-dev.1")
assert v.bump_patch().bump_prerelease("dev") == expected
def test_should_versioninfo_bump_prerelease_and_build():
v = parse_version_info("3.4.5-rc.1+build.1")
expected = parse_version_info("3.4.5-rc.2+build.2")
assert v.bump_prerelease().bump_build() == expected
def test_should_versioninfo_bump_prerelease_and_build_with_token():
v = parse_version_info("3.4.5-rc.1+b.1")
expected = parse_version_info("3.4.5-rc.2+b.2")
assert v.bump_prerelease().bump_build("b") == expected
def test_should_versioninfo_bump_multiple():
v = parse_version_info("3.4.5-rc.1+build.1")
expected = parse_version_info("3.4.5-rc.2+build.2")
assert v.bump_prerelease().bump_build().bump_build() == expected
expected = parse_version_info("3.4.5-rc.3")
assert v.bump_prerelease().bump_build().bump_build().bump_prerelease() == expected
def test_should_ignore_extensions_for_bump():
assert bump_patch("3.4.5-rc1+build4") == "3.4.6"
@pytest.mark.parametrize(
"version,token,expected",
[
("3.4.5-rc.9", None, "3.4.5-rc.10"),
("3.4.5", None, "3.4.5-rc.1"),
("3.4.5", "dev", "3.4.5-dev.1"),
("3.4.5", "", "3.4.5-rc.1"),
],
)
def test_should_bump_prerelease(version, token, expected):
token = "rc" if not token else token
assert bump_prerelease(version, token) == expected
def test_should_ignore_build_on_prerelease_bump():
assert bump_prerelease("3.4.5-rc.1+build.4") == "3.4.5-rc.2"
@pytest.mark.parametrize(
"version,expected",
[
("3.4.5-rc.1+build.9", "3.4.5-rc.1+build.10"),
("3.4.5-rc.1+0009.dev", "3.4.5-rc.1+0010.dev"),
("3.4.5-rc.1", "3.4.5-rc.1+build.1"),
("3.4.5", "3.4.5+build.1"),
],
)
def test_should_bump_build(version, expected):
assert bump_build(version) == expected