Skip to content

Commit 83d6bde

Browse files
committed
refactor(Prerelease): use enum
1 parent 4b72cf8 commit 83d6bde

File tree

5 files changed

+203
-185
lines changed

5 files changed

+203
-185
lines changed

commitizen/commands/bump.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ def __call__(self) -> None: # noqa: C901
173173
increment: SemVerIncrement | None = SemVerIncrement.safe_cast(
174174
self.arguments["increment"]
175175
)
176-
prerelease: Prerelease | None = self.arguments["prerelease"]
176+
prerelease = Prerelease.safe_cast(self.arguments["prerelease"])
177177
devrelease: int | None = self.arguments["devrelease"]
178178
is_files_only: bool | None = self.arguments["files_only"]
179179
is_local_version: bool = self.arguments["local_version"]

commitizen/version_schemes.py

+27-12
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33
import re
44
import sys
55
import warnings
6+
from enum import Enum
67
from itertools import zip_longest
78
from typing import (
89
TYPE_CHECKING,
910
Any,
1011
ClassVar,
11-
Literal,
1212
Protocol,
1313
cast,
1414
runtime_checkable,
@@ -41,7 +41,24 @@
4141
from typing import Self
4242

4343

44-
Prerelease: TypeAlias = Literal["alpha", "beta", "rc"]
44+
class Prerelease(Enum):
45+
ALPHA = "alpha"
46+
BETA = "beta"
47+
RC = "rc"
48+
49+
def __str__(self) -> str:
50+
return self.value
51+
52+
@classmethod
53+
def safe_cast(cls, value: str | None) -> Prerelease | None:
54+
if not value:
55+
return None
56+
try:
57+
return cls[value.upper()]
58+
except KeyError:
59+
return None
60+
61+
4562
DEFAULT_VERSION_PARSER = r"v?(?P<version>([0-9]+)\.([0-9]+)(?:\.([0-9]+))?(?:-([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?(?:\+[0-9A-Za-z.]+)?(\w+)?)"
4663

4764

@@ -172,7 +189,7 @@ def prerelease(self) -> str | None:
172189
return None
173190

174191
def generate_prerelease(
175-
self, prerelease: str | None = None, offset: int = 0
192+
self, prerelease: Prerelease | None = None, offset: int = 0
176193
) -> str:
177194
"""Generate prerelease
178195
@@ -187,20 +204,18 @@ def generate_prerelease(
187204
if not prerelease:
188205
return ""
189206

207+
prerelease_value = prerelease.value
208+
new_prerelease_number = offset
209+
190210
# prevent down-bumping the pre-release phase, e.g. from 'b1' to 'a2'
191211
# https://packaging.python.org/en/latest/specifications/version-specifiers/#pre-releases
192212
# https://semver.org/#spec-item-11
193213
if self.is_prerelease and self.pre:
194-
prerelease = max(prerelease, self.pre[0])
214+
prerelease_value = max(prerelease_value, self.pre[0])
215+
if prerelease_value.startswith(self.pre[0]):
216+
new_prerelease_number = self.pre[1] + 1
195217

196-
# version.pre is needed for mypy check
197-
if self.is_prerelease and self.pre and prerelease.startswith(self.pre[0]):
198-
prev_prerelease: int = self.pre[1]
199-
new_prerelease_number = prev_prerelease + 1
200-
else:
201-
new_prerelease_number = offset
202-
pre_version = f"{prerelease}{new_prerelease_number}"
203-
return pre_version
218+
return f"{prerelease_value}{new_prerelease_number}"
204219

205220
def generate_devrelease(self, devrelease: int | None) -> str:
206221
"""Generate devrelease

tests/test_version_scheme_pep440.py

+88-85
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import pytest
55

66
from commitizen.bump_rule import SemVerIncrement
7-
from commitizen.version_schemes import Pep440, VersionProtocol
7+
from commitizen.version_schemes import Pep440, Prerelease, VersionProtocol
88

99
simple_flow = [
1010
(("0.1.0", SemVerIncrement.PATCH, None, 0, None), "0.1.1"),
@@ -13,25 +13,25 @@
1313
(("0.2.0", SemVerIncrement.MINOR, None, 0, None), "0.3.0"),
1414
(("0.2.0", SemVerIncrement.MINOR, None, 0, 1), "0.3.0.dev1"),
1515
(("0.3.0", SemVerIncrement.PATCH, None, 0, None), "0.3.1"),
16-
(("0.3.0", SemVerIncrement.PATCH, "alpha", 0, None), "0.3.1a0"),
17-
(("0.3.1a0", None, "alpha", 0, None), "0.3.1a1"),
18-
(("0.3.0", SemVerIncrement.PATCH, "alpha", 1, None), "0.3.1a1"),
19-
(("0.3.1a0", None, "alpha", 1, None), "0.3.1a1"),
16+
(("0.3.0", SemVerIncrement.PATCH, Prerelease.ALPHA, 0, None), "0.3.1a0"),
17+
(("0.3.1a0", None, Prerelease.ALPHA, 0, None), "0.3.1a1"),
18+
(("0.3.0", SemVerIncrement.PATCH, Prerelease.ALPHA, 1, None), "0.3.1a1"),
19+
(("0.3.1a0", None, Prerelease.ALPHA, 1, None), "0.3.1a1"),
2020
(("0.3.1a0", None, None, 0, None), "0.3.1"),
2121
(("0.3.1", SemVerIncrement.PATCH, None, 0, None), "0.3.2"),
22-
(("0.4.2", SemVerIncrement.MAJOR, "alpha", 0, None), "1.0.0a0"),
23-
(("1.0.0a0", None, "alpha", 0, None), "1.0.0a1"),
24-
(("1.0.0a1", None, "alpha", 0, None), "1.0.0a2"),
25-
(("1.0.0a1", None, "alpha", 0, 1), "1.0.0a2.dev1"),
26-
(("1.0.0a2.dev0", None, "alpha", 0, 1), "1.0.0a3.dev1"),
27-
(("1.0.0a2.dev0", None, "alpha", 0, 0), "1.0.0a3.dev0"),
28-
(("1.0.0a1", None, "beta", 0, None), "1.0.0b0"),
29-
(("1.0.0b0", None, "beta", 0, None), "1.0.0b1"),
30-
(("1.0.0b1", None, "rc", 0, None), "1.0.0rc0"),
31-
(("1.0.0rc0", None, "rc", 0, None), "1.0.0rc1"),
32-
(("1.0.0rc0", None, "rc", 0, 1), "1.0.0rc1.dev1"),
22+
(("0.4.2", SemVerIncrement.MAJOR, Prerelease.ALPHA, 0, None), "1.0.0a0"),
23+
(("1.0.0a0", None, Prerelease.ALPHA, 0, None), "1.0.0a1"),
24+
(("1.0.0a1", None, Prerelease.ALPHA, 0, None), "1.0.0a2"),
25+
(("1.0.0a1", None, Prerelease.ALPHA, 0, 1), "1.0.0a2.dev1"),
26+
(("1.0.0a2.dev0", None, Prerelease.ALPHA, 0, 1), "1.0.0a3.dev1"),
27+
(("1.0.0a2.dev0", None, Prerelease.ALPHA, 0, 0), "1.0.0a3.dev0"),
28+
(("1.0.0a1", None, Prerelease.BETA, 0, None), "1.0.0b0"),
29+
(("1.0.0b0", None, Prerelease.BETA, 0, None), "1.0.0b1"),
30+
(("1.0.0b1", None, Prerelease.RC, 0, None), "1.0.0rc0"),
31+
(("1.0.0rc0", None, Prerelease.RC, 0, None), "1.0.0rc1"),
32+
(("1.0.0rc0", None, Prerelease.RC, 0, 1), "1.0.0rc1.dev1"),
3333
(("1.0.0rc0", SemVerIncrement.PATCH, None, 0, None), "1.0.0"),
34-
(("1.0.0a3.dev0", None, "beta", 0, None), "1.0.0b0"),
34+
(("1.0.0a3.dev0", None, Prerelease.BETA, 0, None), "1.0.0b0"),
3535
(("1.0.0", SemVerIncrement.PATCH, None, 0, None), "1.0.1"),
3636
(("1.0.1", SemVerIncrement.PATCH, None, 0, None), "1.0.2"),
3737
(("1.0.2", SemVerIncrement.MINOR, None, 0, None), "1.1.0"),
@@ -48,22 +48,22 @@
4848

4949
# never bump backwards on pre-releases
5050
linear_prerelease_cases = [
51-
(("0.1.1b1", None, "alpha", 0, None), "0.1.1b2"),
52-
(("0.1.1rc0", None, "alpha", 0, None), "0.1.1rc1"),
53-
(("0.1.1rc0", None, "beta", 0, None), "0.1.1rc1"),
51+
(("0.1.1b1", None, Prerelease.ALPHA, 0, None), "0.1.1b2"),
52+
(("0.1.1rc0", None, Prerelease.ALPHA, 0, None), "0.1.1rc1"),
53+
(("0.1.1rc0", None, Prerelease.BETA, 0, None), "0.1.1rc1"),
5454
]
5555

5656
weird_cases = [
5757
(("1.1", SemVerIncrement.PATCH, None, 0, None), "1.1.1"),
5858
(("1", SemVerIncrement.MINOR, None, 0, None), "1.1.0"),
5959
(("1", SemVerIncrement.MAJOR, None, 0, None), "2.0.0"),
60-
(("1a0", None, "alpha", 0, None), "1.0.0a1"),
61-
(("1a0", None, "alpha", 1, None), "1.0.0a1"),
62-
(("1", None, "beta", 0, None), "1.0.0b0"),
63-
(("1", None, "beta", 1, None), "1.0.0b1"),
64-
(("1beta", None, "beta", 0, None), "1.0.0b1"),
65-
(("1.0.0alpha1", None, "alpha", 0, None), "1.0.0a2"),
66-
(("1", None, "rc", 0, None), "1.0.0rc0"),
60+
(("1a0", None, Prerelease.ALPHA, 0, None), "1.0.0a1"),
61+
(("1a0", None, Prerelease.ALPHA, 1, None), "1.0.0a1"),
62+
(("1", None, Prerelease.BETA, 0, None), "1.0.0b0"),
63+
(("1", None, Prerelease.BETA, 1, None), "1.0.0b1"),
64+
(("1beta", None, Prerelease.BETA, 0, None), "1.0.0b1"),
65+
(("1.0.0alpha1", None, Prerelease.ALPHA, 0, None), "1.0.0a2"),
66+
(("1", None, Prerelease.RC, 0, None), "1.0.0rc0"),
6767
(("1.0.0rc1+e20d7b57f3eb", SemVerIncrement.PATCH, None, 0, None), "1.0.0"),
6868
]
6969

@@ -72,52 +72,52 @@
7272
(("0.1.1", SemVerIncrement.PATCH, None, 0, None), "0.1.2"),
7373
(("0.1.1", SemVerIncrement.MINOR, None, 0, None), "0.2.0"),
7474
(("2.1.1", SemVerIncrement.MAJOR, None, 0, None), "3.0.0"),
75-
(("0.9.0", SemVerIncrement.PATCH, "alpha", 0, None), "0.9.1a0"),
76-
(("0.9.0", SemVerIncrement.MINOR, "alpha", 0, None), "0.10.0a0"),
77-
(("0.9.0", SemVerIncrement.MAJOR, "alpha", 0, None), "1.0.0a0"),
78-
(("0.9.0", SemVerIncrement.MAJOR, "alpha", 1, None), "1.0.0a1"),
79-
(("1.0.0a2", None, "beta", 0, None), "1.0.0b0"),
80-
(("1.0.0a2", None, "beta", 1, None), "1.0.0b1"),
81-
(("1.0.0beta1", None, "rc", 0, None), "1.0.0rc0"),
82-
(("1.0.0rc1", None, "rc", 0, None), "1.0.0rc2"),
75+
(("0.9.0", SemVerIncrement.PATCH, Prerelease.ALPHA, 0, None), "0.9.1a0"),
76+
(("0.9.0", SemVerIncrement.MINOR, Prerelease.ALPHA, 0, None), "0.10.0a0"),
77+
(("0.9.0", SemVerIncrement.MAJOR, Prerelease.ALPHA, 0, None), "1.0.0a0"),
78+
(("0.9.0", SemVerIncrement.MAJOR, Prerelease.ALPHA, 1, None), "1.0.0a1"),
79+
(("1.0.0a2", None, Prerelease.BETA, 0, None), "1.0.0b0"),
80+
(("1.0.0a2", None, Prerelease.BETA, 1, None), "1.0.0b1"),
81+
(("1.0.0beta1", None, Prerelease.RC, 0, None), "1.0.0rc0"),
82+
(("1.0.0rc1", None, Prerelease.RC, 0, None), "1.0.0rc2"),
8383
]
8484

8585
# additional pre-release tests run through various release scenarios
8686
prerelease_cases = [
8787
#
88-
(("3.3.3", SemVerIncrement.PATCH, "alpha", 0, None), "3.3.4a0"),
89-
(("3.3.4a0", SemVerIncrement.PATCH, "alpha", 0, None), "3.3.4a1"),
90-
(("3.3.4a1", SemVerIncrement.MINOR, "alpha", 0, None), "3.4.0a0"),
91-
(("3.4.0a0", SemVerIncrement.PATCH, "alpha", 0, None), "3.4.0a1"),
92-
(("3.4.0a1", SemVerIncrement.MINOR, "alpha", 0, None), "3.4.0a2"),
93-
(("3.4.0a2", SemVerIncrement.MAJOR, "alpha", 0, None), "4.0.0a0"),
94-
(("4.0.0a0", SemVerIncrement.PATCH, "alpha", 0, None), "4.0.0a1"),
95-
(("4.0.0a1", SemVerIncrement.MINOR, "alpha", 0, None), "4.0.0a2"),
96-
(("4.0.0a2", SemVerIncrement.MAJOR, "alpha", 0, None), "4.0.0a3"),
88+
(("3.3.3", SemVerIncrement.PATCH, Prerelease.ALPHA, 0, None), "3.3.4a0"),
89+
(("3.3.4a0", SemVerIncrement.PATCH, Prerelease.ALPHA, 0, None), "3.3.4a1"),
90+
(("3.3.4a1", SemVerIncrement.MINOR, Prerelease.ALPHA, 0, None), "3.4.0a0"),
91+
(("3.4.0a0", SemVerIncrement.PATCH, Prerelease.ALPHA, 0, None), "3.4.0a1"),
92+
(("3.4.0a1", SemVerIncrement.MINOR, Prerelease.ALPHA, 0, None), "3.4.0a2"),
93+
(("3.4.0a2", SemVerIncrement.MAJOR, Prerelease.ALPHA, 0, None), "4.0.0a0"),
94+
(("4.0.0a0", SemVerIncrement.PATCH, Prerelease.ALPHA, 0, None), "4.0.0a1"),
95+
(("4.0.0a1", SemVerIncrement.MINOR, Prerelease.ALPHA, 0, None), "4.0.0a2"),
96+
(("4.0.0a2", SemVerIncrement.MAJOR, Prerelease.ALPHA, 0, None), "4.0.0a3"),
9797
#
98-
(("1.0.0", SemVerIncrement.PATCH, "alpha", 0, None), "1.0.1a0"),
99-
(("1.0.1a0", SemVerIncrement.PATCH, "alpha", 0, None), "1.0.1a1"),
100-
(("1.0.1a1", SemVerIncrement.MINOR, "alpha", 0, None), "1.1.0a0"),
101-
(("1.1.0a0", SemVerIncrement.PATCH, "alpha", 0, None), "1.1.0a1"),
102-
(("1.1.0a1", SemVerIncrement.MINOR, "alpha", 0, None), "1.1.0a2"),
103-
(("1.1.0a2", SemVerIncrement.MAJOR, "alpha", 0, None), "2.0.0a0"),
98+
(("1.0.0", SemVerIncrement.PATCH, Prerelease.ALPHA, 0, None), "1.0.1a0"),
99+
(("1.0.1a0", SemVerIncrement.PATCH, Prerelease.ALPHA, 0, None), "1.0.1a1"),
100+
(("1.0.1a1", SemVerIncrement.MINOR, Prerelease.ALPHA, 0, None), "1.1.0a0"),
101+
(("1.1.0a0", SemVerIncrement.PATCH, Prerelease.ALPHA, 0, None), "1.1.0a1"),
102+
(("1.1.0a1", SemVerIncrement.MINOR, Prerelease.ALPHA, 0, None), "1.1.0a2"),
103+
(("1.1.0a2", SemVerIncrement.MAJOR, Prerelease.ALPHA, 0, None), "2.0.0a0"),
104104
#
105-
(("1.0.0", SemVerIncrement.MINOR, "alpha", 0, None), "1.1.0a0"),
106-
(("1.1.0a0", SemVerIncrement.PATCH, "alpha", 0, None), "1.1.0a1"),
107-
(("1.1.0a1", SemVerIncrement.MINOR, "alpha", 0, None), "1.1.0a2"),
108-
(("1.1.0a2", SemVerIncrement.PATCH, "alpha", 0, None), "1.1.0a3"),
109-
(("1.1.0a3", SemVerIncrement.MAJOR, "alpha", 0, None), "2.0.0a0"),
105+
(("1.0.0", SemVerIncrement.MINOR, Prerelease.ALPHA, 0, None), "1.1.0a0"),
106+
(("1.1.0a0", SemVerIncrement.PATCH, Prerelease.ALPHA, 0, None), "1.1.0a1"),
107+
(("1.1.0a1", SemVerIncrement.MINOR, Prerelease.ALPHA, 0, None), "1.1.0a2"),
108+
(("1.1.0a2", SemVerIncrement.PATCH, Prerelease.ALPHA, 0, None), "1.1.0a3"),
109+
(("1.1.0a3", SemVerIncrement.MAJOR, Prerelease.ALPHA, 0, None), "2.0.0a0"),
110110
#
111-
(("1.0.0", SemVerIncrement.MAJOR, "alpha", 0, None), "2.0.0a0"),
112-
(("2.0.0a0", SemVerIncrement.MINOR, "alpha", 0, None), "2.0.0a1"),
113-
(("2.0.0a1", SemVerIncrement.PATCH, "alpha", 0, None), "2.0.0a2"),
114-
(("2.0.0a2", SemVerIncrement.MAJOR, "alpha", 0, None), "2.0.0a3"),
115-
(("2.0.0a3", SemVerIncrement.MINOR, "alpha", 0, None), "2.0.0a4"),
116-
(("2.0.0a4", SemVerIncrement.PATCH, "alpha", 0, None), "2.0.0a5"),
117-
(("2.0.0a5", SemVerIncrement.MAJOR, "alpha", 0, None), "2.0.0a6"),
111+
(("1.0.0", SemVerIncrement.MAJOR, Prerelease.ALPHA, 0, None), "2.0.0a0"),
112+
(("2.0.0a0", SemVerIncrement.MINOR, Prerelease.ALPHA, 0, None), "2.0.0a1"),
113+
(("2.0.0a1", SemVerIncrement.PATCH, Prerelease.ALPHA, 0, None), "2.0.0a2"),
114+
(("2.0.0a2", SemVerIncrement.MAJOR, Prerelease.ALPHA, 0, None), "2.0.0a3"),
115+
(("2.0.0a3", SemVerIncrement.MINOR, Prerelease.ALPHA, 0, None), "2.0.0a4"),
116+
(("2.0.0a4", SemVerIncrement.PATCH, Prerelease.ALPHA, 0, None), "2.0.0a5"),
117+
(("2.0.0a5", SemVerIncrement.MAJOR, Prerelease.ALPHA, 0, None), "2.0.0a6"),
118118
#
119-
(("2.0.0b0", SemVerIncrement.MINOR, "alpha", 0, None), "2.0.0b1"),
120-
(("2.0.0b0", SemVerIncrement.PATCH, "alpha", 0, None), "2.0.0b1"),
119+
(("2.0.0b0", SemVerIncrement.MINOR, Prerelease.ALPHA, 0, None), "2.0.0b1"),
120+
(("2.0.0b0", SemVerIncrement.PATCH, Prerelease.ALPHA, 0, None), "2.0.0b1"),
121121
#
122122
(("1.0.1a0", SemVerIncrement.PATCH, None, 0, None), "1.0.1"),
123123
(("1.0.1a0", SemVerIncrement.MINOR, None, 0, None), "1.1.0"),
@@ -135,53 +135,56 @@
135135
(("3.0.0b1", None, None, 0, None), "3.0.0"),
136136
(("3.0.0rc1", None, None, 0, None), "3.0.0"),
137137
#
138-
(("3.1.4", None, "alpha", 0, None), "3.1.4a0"),
139-
(("3.1.4", None, "beta", 0, None), "3.1.4b0"),
140-
(("3.1.4", None, "rc", 0, None), "3.1.4rc0"),
138+
(("3.1.4", None, Prerelease.ALPHA, 0, None), "3.1.4a0"),
139+
(("3.1.4", None, Prerelease.BETA, 0, None), "3.1.4b0"),
140+
(("3.1.4", None, Prerelease.RC, 0, None), "3.1.4rc0"),
141141
#
142-
(("3.1.4", None, "alpha", 0, None), "3.1.4a0"),
143-
(("3.1.4a0", SemVerIncrement.PATCH, "alpha", 0, None), "3.1.4a1"), # UNEXPECTED!
144-
(("3.1.4a0", SemVerIncrement.MINOR, "alpha", 0, None), "3.2.0a0"),
145-
(("3.1.4a0", SemVerIncrement.MAJOR, "alpha", 0, None), "4.0.0a0"),
142+
(("3.1.4", None, Prerelease.ALPHA, 0, None), "3.1.4a0"),
143+
(
144+
("3.1.4a0", SemVerIncrement.PATCH, Prerelease.ALPHA, 0, None),
145+
"3.1.4a1",
146+
), # UNEXPECTED!
147+
(("3.1.4a0", SemVerIncrement.MINOR, Prerelease.ALPHA, 0, None), "3.2.0a0"),
148+
(("3.1.4a0", SemVerIncrement.MAJOR, Prerelease.ALPHA, 0, None), "4.0.0a0"),
146149
]
147150

148151
exact_cases = [
149152
(("1.0.0", SemVerIncrement.PATCH, None, 0, None), "1.0.1"),
150153
(("1.0.0", SemVerIncrement.MINOR, None, 0, None), "1.1.0"),
151154
# with exact_increment=False: "1.0.0b0"
152-
(("1.0.0a1", SemVerIncrement.PATCH, "beta", 0, None), "1.0.1b0"),
155+
(("1.0.0a1", SemVerIncrement.PATCH, Prerelease.BETA, 0, None), "1.0.1b0"),
153156
# with exact_increment=False: "1.0.0b1"
154-
(("1.0.0b0", SemVerIncrement.PATCH, "beta", 0, None), "1.0.1b0"),
157+
(("1.0.0b0", SemVerIncrement.PATCH, Prerelease.BETA, 0, None), "1.0.1b0"),
155158
# with exact_increment=False: "1.0.0rc0"
156-
(("1.0.0b1", SemVerIncrement.PATCH, "rc", 0, None), "1.0.1rc0"),
159+
(("1.0.0b1", SemVerIncrement.PATCH, Prerelease.RC, 0, None), "1.0.1rc0"),
157160
# with exact_increment=False: "1.0.0-rc1"
158-
(("1.0.0rc0", SemVerIncrement.PATCH, "rc", 0, None), "1.0.1rc0"),
161+
(("1.0.0rc0", SemVerIncrement.PATCH, Prerelease.RC, 0, None), "1.0.1rc0"),
159162
# with exact_increment=False: "1.0.0rc1-dev1"
160-
(("1.0.0rc0", SemVerIncrement.PATCH, "rc", 0, 1), "1.0.1rc0.dev1"),
163+
(("1.0.0rc0", SemVerIncrement.PATCH, Prerelease.RC, 0, 1), "1.0.1rc0.dev1"),
161164
# with exact_increment=False: "1.0.0b0"
162-
(("1.0.0a1", SemVerIncrement.MINOR, "beta", 0, None), "1.1.0b0"),
165+
(("1.0.0a1", SemVerIncrement.MINOR, Prerelease.BETA, 0, None), "1.1.0b0"),
163166
# with exact_increment=False: "1.0.0b1"
164-
(("1.0.0b0", SemVerIncrement.MINOR, "beta", 0, None), "1.1.0b0"),
167+
(("1.0.0b0", SemVerIncrement.MINOR, Prerelease.BETA, 0, None), "1.1.0b0"),
165168
# with exact_increment=False: "1.0.0b1"
166-
(("1.0.0b0", SemVerIncrement.MINOR, "alpha", 0, None), "1.1.0a0"),
169+
(("1.0.0b0", SemVerIncrement.MINOR, Prerelease.ALPHA, 0, None), "1.1.0a0"),
167170
# with exact_increment=False: "1.0.0rc0"
168-
(("1.0.0b1", SemVerIncrement.MINOR, "rc", 0, None), "1.1.0rc0"),
171+
(("1.0.0b1", SemVerIncrement.MINOR, Prerelease.RC, 0, None), "1.1.0rc0"),
169172
# with exact_increment=False: "1.0.0rc1"
170-
(("1.0.0rc0", SemVerIncrement.MINOR, "rc", 0, None), "1.1.0rc0"),
173+
(("1.0.0rc0", SemVerIncrement.MINOR, Prerelease.RC, 0, None), "1.1.0rc0"),
171174
# with exact_increment=False: "1.0.0rc1-dev1"
172-
(("1.0.0rc0", SemVerIncrement.MINOR, "rc", 0, 1), "1.1.0rc0.dev1"),
175+
(("1.0.0rc0", SemVerIncrement.MINOR, Prerelease.RC, 0, 1), "1.1.0rc0.dev1"),
173176
# with exact_increment=False: "2.0.0"
174177
(("2.0.0b0", SemVerIncrement.MAJOR, None, 0, None), "3.0.0"),
175178
# with exact_increment=False: "2.0.0"
176179
(("2.0.0b0", SemVerIncrement.MINOR, None, 0, None), "2.1.0"),
177180
# with exact_increment=False: "2.0.0"
178181
(("2.0.0b0", SemVerIncrement.PATCH, None, 0, None), "2.0.1"),
179182
# same with exact_increment=False
180-
(("2.0.0b0", SemVerIncrement.MAJOR, "alpha", 0, None), "3.0.0a0"),
183+
(("2.0.0b0", SemVerIncrement.MAJOR, Prerelease.ALPHA, 0, None), "3.0.0a0"),
181184
# with exact_increment=False: "2.0.0b1"
182-
(("2.0.0b0", SemVerIncrement.MINOR, "alpha", 0, None), "2.1.0a0"),
185+
(("2.0.0b0", SemVerIncrement.MINOR, Prerelease.ALPHA, 0, None), "2.1.0a0"),
183186
# with exact_increment=False: "2.0.0b1"
184-
(("2.0.0b0", SemVerIncrement.PATCH, "alpha", 0, None), "2.0.1a0"),
187+
(("2.0.0b0", SemVerIncrement.PATCH, Prerelease.ALPHA, 0, None), "2.0.1a0"),
185188
]
186189

187190

0 commit comments

Comments
 (0)