Skip to content

Commit d288667

Browse files
committed
tests: Use NamedTuple for pytest.mark.parametrize
1 parent 4471c67 commit d288667

File tree

2 files changed

+25
-11
lines changed

2 files changed

+25
-11
lines changed

tests/test_common.py

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import re
44
import sys
55
import typing as t
6-
from typing import Optional
76

87
import pytest
98

@@ -181,19 +180,25 @@ def test_tmux_cmd_unicode(session: Session) -> None:
181180
session.cmd("new-window", "-t", 3, "-n", "юникод", "-F", "Ελληνικά")
182181

183182

183+
class SessionCheckName(t.NamedTuple):
184+
session_name: t.Optional[str]
185+
raises: bool
186+
exc_msg_regex: t.Optional[str]
187+
188+
184189
@pytest.mark.parametrize(
185-
"session_name,raises,exc_msg_regex",
190+
SessionCheckName._fields,
186191
[
187-
("", True, "may not be empty"),
188-
(None, True, "may not be empty"),
189-
("my great session.", True, "may not contain periods"),
190-
("name: great session", True, "may not contain colons"),
191-
("new great session", False, None),
192-
("ajf8a3fa83fads,,,a", False, None),
192+
SessionCheckName("", True, "may not be empty"),
193+
SessionCheckName(None, True, "may not be empty"),
194+
SessionCheckName("my great session.", True, "may not contain periods"),
195+
SessionCheckName("name: great session", True, "may not contain colons"),
196+
SessionCheckName("new great session", False, None),
197+
SessionCheckName("ajf8a3fa83fads,,,a", False, None),
193198
],
194199
)
195200
def test_session_check_name(
196-
session_name: Optional[str], raises: bool, exc_msg_regex: Optional[str]
201+
session_name: t.Optional[str], raises: bool, exc_msg_regex: t.Optional[str]
197202
) -> None:
198203
if raises:
199204
with pytest.raises(BadSessionName) as exc_info:

tests/test_session.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -219,9 +219,18 @@ def test_unset_environment(session: Session) -> None:
219219
assert session.getenv("BAM") is None
220220

221221

222+
class PeriodRaisesBadSessionName(t.NamedTuple):
223+
session_name: str
224+
raises: bool
225+
226+
222227
@pytest.mark.parametrize(
223-
"session_name,raises",
224-
[("hey.period", True), ("hey:its a colon", True), ("hey moo", False)],
228+
PeriodRaisesBadSessionName._fields,
229+
[
230+
PeriodRaisesBadSessionName("hey.period", True),
231+
PeriodRaisesBadSessionName("hey:its a colon", True),
232+
PeriodRaisesBadSessionName("hey moo", False),
233+
],
225234
)
226235
def test_periods_raise_badsessionname(
227236
server: Server, session: Session, session_name: str, raises: bool

0 commit comments

Comments
 (0)