1
1
"""Tests for utility functions in libtmux."""
2
-
3
2
import re
4
3
import sys
5
4
import typing as t
6
- from typing import Optional
7
5
8
6
import pytest
9
7
30
28
31
29
32
30
def test_allows_master_version (monkeypatch : pytest .MonkeyPatch ) -> None :
31
+ """Assert get_version() works with builds from git trunk."""
32
+
33
33
class Hi :
34
34
stdout : t .ClassVar = ["tmux master" ]
35
35
stderr = None
@@ -48,6 +48,7 @@ def mock_tmux_cmd(*args: t.Any, **kwargs: t.Any) -> Hi:
48
48
49
49
50
50
def test_allows_next_version (monkeypatch : pytest .MonkeyPatch ) -> None :
51
+ """Assert get_version() supports next version."""
51
52
TMUX_NEXT_VERSION = str (float (TMUX_MAX_VERSION ) + 0.1 )
52
53
53
54
class Hi :
@@ -66,6 +67,8 @@ def mock_tmux_cmd(*args: t.Any, **kwargs: t.Any) -> Hi:
66
67
67
68
68
69
def test_get_version_openbsd (monkeypatch : pytest .MonkeyPatch ) -> None :
70
+ """Assert get_version() with OpenBSD versions."""
71
+
69
72
class Hi :
70
73
stderr : t .ClassVar = ["tmux: unknown option -- V" ]
71
74
@@ -83,6 +86,8 @@ def mock_tmux_cmd(*args: t.Any, **kwargs: t.Any) -> Hi:
83
86
84
87
85
88
def test_get_version_too_low (monkeypatch : pytest .MonkeyPatch ) -> None :
89
+ """Assert get_version() raises if tmux version too low."""
90
+
86
91
class Hi :
87
92
stderr : t .ClassVar = ["tmux: unknown option -- V" ]
88
93
@@ -96,7 +101,7 @@ def mock_tmux_cmd(*args: t.Any, **kwargs: t.Any) -> Hi:
96
101
97
102
98
103
def test_ignores_letter_versions (monkeypatch : pytest .MonkeyPatch ) -> None :
99
- """Ignore letters such as 1.8b.
104
+ """Tests version utilities ignores letters such as 1.8b.
100
105
101
106
See ticket https://github.com/tmux-python/tmuxp/issues/55.
102
107
@@ -119,6 +124,8 @@ def test_ignores_letter_versions(monkeypatch: pytest.MonkeyPatch) -> None:
119
124
120
125
121
126
def test_error_version_less_1_7 (monkeypatch : pytest .MonkeyPatch ) -> None :
127
+ """Test raises if tmux version less than 1.7."""
128
+
122
129
def mock_get_version () -> LooseVersion :
123
130
return LooseVersion ("1.7" )
124
131
@@ -134,10 +141,12 @@ def mock_get_version() -> LooseVersion:
134
141
135
142
136
143
def test_has_version () -> None :
144
+ """Test has_version()."""
137
145
assert has_version (str (get_version ()))
138
146
139
147
140
148
def test_has_gt_version () -> None :
149
+ """Test has_gt_version()."""
141
150
assert has_gt_version ("1.6" )
142
151
assert has_gt_version ("1.6b" )
143
152
@@ -146,6 +155,7 @@ def test_has_gt_version() -> None:
146
155
147
156
148
157
def test_has_gte_version () -> None :
158
+ """Test has_gte_version()."""
149
159
assert has_gte_version ("1.6" )
150
160
assert has_gte_version ("1.6b" )
151
161
assert has_gte_version (str (get_version ()))
@@ -155,6 +165,7 @@ def test_has_gte_version() -> None:
155
165
156
166
157
167
def test_has_lt_version () -> None :
168
+ """Test has_lt_version()."""
158
169
assert has_lt_version ("4.0a" )
159
170
assert has_lt_version ("4.0" )
160
171
@@ -163,6 +174,7 @@ def test_has_lt_version() -> None:
163
174
164
175
165
176
def test_has_lte_version () -> None :
177
+ """Test has_lti_version()."""
166
178
assert has_lte_version ("4.0a" )
167
179
assert has_lte_version ("4.0" )
168
180
assert has_lte_version (str (get_version ()))
@@ -172,29 +184,40 @@ def test_has_lte_version() -> None:
172
184
173
185
174
186
def test_tmux_cmd_raises_on_not_found (monkeypatch : pytest .MonkeyPatch ) -> None :
187
+ """Verify raises if tmux command not found."""
175
188
monkeypatch .setenv ("PATH" , "" )
176
189
with pytest .raises (TmuxCommandNotFound ):
177
190
tmux_cmd ("-V" )
178
191
179
192
180
193
def test_tmux_cmd_unicode (session : Session ) -> None :
194
+ """Verify tmux commands with unicode."""
181
195
session .cmd ("new-window" , "-t" , 3 , "-n" , "юникод" , "-F" , "Ελληνικά" )
182
196
183
197
198
+ class SessionCheckName (t .NamedTuple ):
199
+ """Test fixture for test_session_check_name()."""
200
+
201
+ session_name : t .Optional [str ]
202
+ raises : bool
203
+ exc_msg_regex : t .Optional [str ]
204
+
205
+
184
206
@pytest .mark .parametrize (
185
- "session_name,raises,exc_msg_regex" ,
207
+ SessionCheckName . _fields ,
186
208
[
187
- ("" , True , "empty" ),
188
- (None , True , "empty" ),
189
- ("my great session." , True , "contains periods" ),
190
- ("name: great session" , True , "contains colons" ),
191
- ("new great session" , False , None ),
192
- ("ajf8a3fa83fads,,,a" , False , None ),
209
+ SessionCheckName ("" , True , "empty" ),
210
+ SessionCheckName (None , True , "empty" ),
211
+ SessionCheckName ("my great session." , True , "contains periods" ),
212
+ SessionCheckName ("name: great session" , True , "contains colons" ),
213
+ SessionCheckName ("new great session" , False , None ),
214
+ SessionCheckName ("ajf8a3fa83fads,,,a" , False , None ),
193
215
],
194
216
)
195
217
def test_session_check_name (
196
- session_name : Optional [str ], raises : bool , exc_msg_regex : Optional [str ]
218
+ session_name : t . Optional [str ], raises : bool , exc_msg_regex : t . Optional [str ]
197
219
) -> None :
220
+ """Verify session_check_name()."""
198
221
if raises :
199
222
with pytest .raises (BadSessionName ) as exc_info :
200
223
session_check_name (session_name )
@@ -205,6 +228,7 @@ def test_session_check_name(
205
228
206
229
207
230
def test_get_libtmux_version () -> None :
231
+ """Verify get_libtmux_version()."""
208
232
from libtmux .__about__ import __version__
209
233
210
234
version = get_libtmux_version ()
0 commit comments