Skip to content

Commit 7864b10

Browse files
committed
chore(test_version): Updates for mypy
1 parent ac1f16a commit 7864b10

File tree

1 file changed

+41
-14
lines changed

1 file changed

+41
-14
lines changed

tests/test_version.py

Lines changed: 41 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,20 @@
11
import operator
2+
import typing as t
23
from contextlib import nullcontext as does_not_raise
34

45
import pytest
56

67
from libtmux._compat import LooseVersion
78

9+
if t.TYPE_CHECKING:
10+
from _pytest.python_api import RaisesContext
11+
from typing_extensions import TypeAlias
12+
13+
VersionCompareOp: TypeAlias = t.Callable[
14+
[t.Any, t.Any],
15+
bool,
16+
]
17+
818

919
@pytest.mark.parametrize(
1020
"version",
@@ -19,25 +29,42 @@
1929
"1.0.0-next.1",
2030
],
2131
)
22-
def test_version(version):
32+
def test_version(version: str) -> None:
2333
assert LooseVersion(version)
2434

2535

36+
class VersionCompareFixture(t.NamedTuple):
37+
a: object
38+
op: "VersionCompareOp"
39+
b: object
40+
raises: t.Union[t.Type[Exception], bool]
41+
42+
2643
@pytest.mark.parametrize(
27-
"version,op,versionb,raises",
44+
VersionCompareFixture._fields,
2845
[
29-
["1", operator.eq, "1", False],
30-
["1", operator.eq, "1.0", False],
31-
["1", operator.eq, "1.0.0", False],
32-
["1", operator.gt, "1.0.0a", False],
33-
["1", operator.gt, "1.0.0b", False],
34-
["1", operator.lt, "1.0.0p1", False],
35-
["1", operator.lt, "1.0.0-openbsd", False],
36-
["1", operator.lt, "1", AssertionError],
37-
["1", operator.lt, "1", AssertionError],
46+
VersionCompareFixture(a="1", op=operator.eq, b="1", raises=False),
47+
VersionCompareFixture(a="1", op=operator.eq, b="1.0", raises=False),
48+
VersionCompareFixture(a="1", op=operator.eq, b="1.0.0", raises=False),
49+
VersionCompareFixture(a="1", op=operator.gt, b="1.0.0a", raises=False),
50+
VersionCompareFixture(a="1", op=operator.gt, b="1.0.0b", raises=False),
51+
VersionCompareFixture(a="1", op=operator.lt, b="1.0.0p1", raises=False),
52+
VersionCompareFixture(a="1", op=operator.lt, b="1.0.0-openbsd", raises=False),
53+
VersionCompareFixture(a="1", op=operator.lt, b="1", raises=AssertionError),
54+
VersionCompareFixture(a="1", op=operator.lt, b="1", raises=AssertionError),
55+
VersionCompareFixture(a="1.0.0c", op=operator.gt, b="1.0.0b", raises=False),
3856
],
3957
)
40-
def test_version_compare(version, op, versionb, raises):
41-
raises_ctx = pytest.raises(raises) if raises else does_not_raise()
58+
def test_version_compare(
59+
a: str,
60+
op: "VersionCompareOp",
61+
b: str,
62+
raises: t.Union[t.Type[Exception], bool],
63+
) -> None:
64+
raises_ctx: "RaisesContext[Exception]" = (
65+
pytest.raises(t.cast(t.Type[Exception], raises))
66+
if raises
67+
else t.cast("RaisesContext[Exception]", does_not_raise())
68+
)
4269
with raises_ctx:
43-
assert op(LooseVersion(version), LooseVersion(versionb))
70+
assert op(LooseVersion(a), LooseVersion(b))

0 commit comments

Comments
 (0)