Skip to content

Commit 70cd418

Browse files
radoeringneersighted
authored andcommitted
test(version): split test_version_pep440 into test_segments and test_version, move tests for "next"-methods from semver/test_version to pep440/test_version
1 parent 957d07d commit 70cd418

File tree

5 files changed

+331
-325
lines changed

5 files changed

+331
-325
lines changed

tests/semver/test_version.py

-149
Original file line numberDiff line numberDiff line change
@@ -288,152 +288,3 @@ def test_difference() -> None:
288288
assert (
289289
v.difference(VersionRange(Version.parse("1.4.0"), Version.parse("3.0.0"))) == v
290290
)
291-
292-
293-
@pytest.mark.parametrize(
294-
"version, expected",
295-
[
296-
("1", "2"),
297-
("2!1", "2!2"),
298-
("1+local", "2"),
299-
("1.2", "2.0"),
300-
("1.2.3", "2.0.0"),
301-
("1.2.3.4", "2.0.0.0"),
302-
("1.dev0", "1"),
303-
("1.2.dev0", "2.0"),
304-
("1.post1", "2"),
305-
("1.2.post1", "2.0"),
306-
("1.post1.dev0", "2"),
307-
("1.2.post1.dev0", "2.0"),
308-
("1.a1", "1"),
309-
("1.2a1", "2.0"),
310-
("1.a1.post2", "1"),
311-
("1.2a1.post2", "2.0"),
312-
("1.a1.post2.dev0", "1"),
313-
("1.2a1.post2.dev0", "2.0"),
314-
],
315-
)
316-
def test_next_major(version: str, expected: str) -> None:
317-
v = Version.parse(version)
318-
assert str(v.next_major()) == expected
319-
320-
321-
@pytest.mark.parametrize(
322-
"version, expected",
323-
[
324-
("1", "1.1"),
325-
("1.2", "1.3"),
326-
("2!1.2", "2!1.3"),
327-
("1.2+local", "1.3"),
328-
("1.2.3", "1.3.0"),
329-
("1.2.3.4", "1.3.0.0"),
330-
("1.dev0", "1"),
331-
("1.2dev0", "1.2"),
332-
("1.2.3dev0", "1.3.0"),
333-
("1.post1", "1.1"),
334-
("1.2.post1", "1.3"),
335-
("1.2.3.post1", "1.3.0"),
336-
("1.post1.dev0", "1.1"),
337-
("1.2.post1.dev0", "1.3"),
338-
("1.a1", "1"),
339-
("1.2a1", "1.2"),
340-
("1.2.3a1", "1.3.0"),
341-
("1.a1.post2", "1"),
342-
("1.2a1.post2", "1.2"),
343-
("1.2.3a1.post2", "1.3.0"),
344-
("1.a1.post2.dev0", "1"),
345-
("1.2a1.post2.dev0", "1.2"),
346-
("1.2.3a1.post2.dev0", "1.3.0"),
347-
],
348-
)
349-
def test_next_minor(version: str, expected: str) -> None:
350-
v = Version.parse(version)
351-
assert str(v.next_minor()) == expected
352-
353-
354-
@pytest.mark.parametrize(
355-
"version, expected",
356-
[
357-
("1", "1.0.1"),
358-
("1.2", "1.2.1"),
359-
("1.2.3", "1.2.4"),
360-
("2!1.2.3", "2!1.2.4"),
361-
("1.2.3+local", "1.2.4"),
362-
("1.2.3.4", "1.2.4.0"),
363-
("1.dev0", "1"),
364-
("1.2dev0", "1.2"),
365-
("1.2.3dev0", "1.2.3"),
366-
("1.2.3.4dev0", "1.2.4.0"),
367-
("1.post1", "1.0.1"),
368-
("1.2.post1", "1.2.1"),
369-
("1.2.3.post1", "1.2.4"),
370-
("1.post1.dev0", "1.0.1"),
371-
("1.2.post1.dev0", "1.2.1"),
372-
("1.2.3.post1.dev0", "1.2.4"),
373-
("1.a1", "1"),
374-
("1.2a1", "1.2"),
375-
("1.2.3a1", "1.2.3"),
376-
("1.2.3.4a1", "1.2.4.0"),
377-
("1.a1.post2", "1"),
378-
("1.2a1.post2", "1.2"),
379-
("1.2.3a1.post2", "1.2.3"),
380-
("1.2.3.4a1.post2", "1.2.4.0"),
381-
("1.a1.post2.dev0", "1"),
382-
("1.2a1.post2.dev0", "1.2"),
383-
("1.2.3a1.post2.dev0", "1.2.3"),
384-
("1.2.3.4a1.post2.dev0", "1.2.4.0"),
385-
],
386-
)
387-
def test_next_patch(version: str, expected: str) -> None:
388-
v = Version.parse(version)
389-
assert str(v.next_patch()) == expected
390-
391-
392-
@pytest.mark.parametrize(
393-
"version, expected",
394-
[
395-
("1.2a1", "1.2a2"),
396-
("2!1.2a1", "2!1.2a2"),
397-
("1.2dev0", "1.2a0"),
398-
("1.2a1.dev0", "1.2a1"),
399-
("1.2a1.post1.dev0", "1.2a2"),
400-
],
401-
)
402-
def test_next_prerelease(version: str, expected: str) -> None:
403-
v = Version.parse(version)
404-
assert str(v.next_prerelease()) == expected
405-
406-
407-
@pytest.mark.parametrize(
408-
"version, expected",
409-
[
410-
("1", "1.post0"),
411-
("1.post1", "1.post2"),
412-
("9!1.2.3.4", "9!1.2.3.4.post0"),
413-
("9!1.2.3.4.post2", "9!1.2.3.4.post3"),
414-
("1.dev0", "1.post0"),
415-
("1.post1.dev0", "1.post1"),
416-
("1a1", "1a1.post0"),
417-
("1a1.dev0", "1a1.post0"),
418-
("1a1.post2", "1a1.post3"),
419-
("1a1.post2.dev0", "1a1.post2"),
420-
],
421-
)
422-
def test_next_postrelease(version: str, expected: str) -> None:
423-
v = Version.parse(version)
424-
assert str(v.next_postrelease()) == expected
425-
426-
427-
def test_next_devrelease() -> None:
428-
v = Version.parse("9!1.2.3a1.post2.dev3")
429-
assert str(v.next_devrelease()) == "9!1.2.3a1.post2.dev4"
430-
431-
432-
def test_next_firstprerelease() -> None:
433-
v = Version.parse("9!1.2.3a1.post2.dev3")
434-
assert str(v.first_prerelease()) == "9!1.2.3a0"
435-
436-
437-
def test_next_firstdevrelease() -> None:
438-
v = Version.parse("9!1.2.3a1.post2.dev3")
439-
assert str(v.first_devrelease()) == "9!1.2.3a1.post2.dev0"

tests/version/pep440/__init__.py

Whitespace-only changes.

tests/version/pep440/test_segments.py

+70
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
from __future__ import annotations
2+
3+
import pytest
4+
5+
from poetry.core.version.pep440 import Release
6+
from poetry.core.version.pep440 import ReleaseTag
7+
from poetry.core.version.pep440.segments import RELEASE_PHASE_NORMALIZATIONS
8+
9+
10+
@pytest.mark.parametrize(
11+
"parts,result",
12+
[
13+
((1,), Release(1)),
14+
((1, 2), Release(1, 2)),
15+
((1, 2, 3), Release(1, 2, 3)),
16+
((1, 2, 3, 4), Release(1, 2, 3, 4)),
17+
((1, 2, 3, 4, 5, 6), Release(1, 2, 3, (4, 5, 6))),
18+
],
19+
)
20+
def test_pep440_release_segment_from_parts(
21+
parts: tuple[int, ...], result: Release
22+
) -> None:
23+
assert Release.from_parts(*parts) == result
24+
25+
26+
@pytest.mark.parametrize(
27+
"parts,result",
28+
[
29+
(("a",), ReleaseTag("alpha", 0)),
30+
(("a", 1), ReleaseTag("alpha", 1)),
31+
(("b",), ReleaseTag("beta", 0)),
32+
(("b", 1), ReleaseTag("beta", 1)),
33+
(("pre",), ReleaseTag("preview", 0)),
34+
(("pre", 1), ReleaseTag("preview", 1)),
35+
(("c",), ReleaseTag("rc", 0)),
36+
(("c", 1), ReleaseTag("rc", 1)),
37+
(("r",), ReleaseTag("rev", 0)),
38+
(("r", 1), ReleaseTag("rev", 1)),
39+
],
40+
)
41+
def test_pep440_release_tag_normalisation(
42+
parts: tuple[str] | tuple[str, int], result: ReleaseTag
43+
) -> None:
44+
tag = ReleaseTag(*parts)
45+
assert tag == result
46+
assert tag.to_string() == result.to_string()
47+
48+
49+
@pytest.mark.parametrize(
50+
"parts,result",
51+
[
52+
(("a",), ReleaseTag("beta")),
53+
(("b",), ReleaseTag("rc")),
54+
(("post",), None),
55+
(("rc",), None),
56+
(("rev",), None),
57+
(("dev",), None),
58+
],
59+
)
60+
def test_pep440_release_tag_next_phase(
61+
parts: tuple[str], result: ReleaseTag | None
62+
) -> None:
63+
assert ReleaseTag(*parts).next_phase() == result
64+
65+
66+
@pytest.mark.parametrize("phase", list({*RELEASE_PHASE_NORMALIZATIONS.keys()}))
67+
def test_pep440_release_tag_next(phase: str) -> None:
68+
tag = ReleaseTag(phase=phase).next()
69+
assert tag.phase == RELEASE_PHASE_NORMALIZATIONS[phase]
70+
assert tag.number == 1

0 commit comments

Comments
 (0)