Skip to content

Commit 301ef46

Browse files
committed
use @support.subTests syntax
1 parent 461fd5b commit 301ef46

File tree

1 file changed

+21
-23
lines changed

1 file changed

+21
-23
lines changed

Lib/test/test_getpass.py

Lines changed: 21 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -202,38 +202,36 @@ def test_control_chars_with_echo_char(self):
202202

203203

204204
class GetpassEchoCharTest(unittest.TestCase):
205+
# Tests for the `echo_char` parameter of `getpass.getpass()`
205206
# Successful Validation Cases
206207
def test_accepts_none(self):
207208
getpass._check_echo_char(None)
208209

209-
def test_accepts_single_printable_ascii(self):
210-
for ch in ["*", "A", " "]:
211-
with self.subTest(echo_char=ch):
212-
getpass._check_echo_char(ch)
210+
@support.subTests('echo_char', ["*", "A", " "])
211+
def test_accepts_single_printable_ascii(self, echo_char):
212+
getpass._check_echo_char(echo_char)
213213

214214
# Rejected `echo_char` Cases
215+
# ValueError Rejection(s)
215216
def test_rejects_empty_string(self):
216217
self.assertRaises(ValueError, getpass.getpass, echo_char="")
217218

218-
def test_rejects_multi_character_strings(self):
219-
for s in ["***", "AA", "aA*!"]:
220-
with self.subTest(echo_char=s):
221-
self.assertRaises(ValueError, getpass.getpass, echo_char=s)
222-
223-
def test_rejects_non_ascii(self):
224-
for ch in ["Æ", "❤️", "🐍"]:
225-
with self.subTest(echo_char=ch):
226-
self.assertRaises(ValueError, getpass.getpass, echo_char=ch)
227-
228-
def test_rejects_control_characters(self):
229-
for ch in ["\n", "\t", "\r", "\x00", "\x7f", "\x07"]:
230-
with self.subTest(echo_char=ch):
231-
self.assertRaises(ValueError, getpass.getpass, echo_char=ch)
232-
233-
def test_rejects_non_string(self):
234-
for item in [b"*", 0, 0.0, [], {}]:
235-
with self.subTest(echo_char=item):
236-
self.assertRaises(TypeError, getpass.getpass, echo_char=item)
219+
@support.subTests('echo_char', ["***", "AA", "aA*!"])
220+
def test_rejects_multi_character_strings(self, echo_char):
221+
self.assertRaises(ValueError, getpass.getpass, echo_char=echo_char)
222+
223+
@support.subTests('echo_char', ["Æ", "❤️", "🐍"])
224+
def test_rejects_non_ascii(self, echo_char):
225+
self.assertRaises(ValueError, getpass.getpass, echo_char=echo_char)
226+
227+
@support.subTests('echo_char', ["\n", "\t", "\r", "\x00", "\x7f", "\x07"])
228+
def test_rejects_control_characters(self, echo_char):
229+
self.assertRaises(ValueError, getpass.getpass, echo_char=echo_char)
230+
231+
# TypeError Rejection(s)
232+
@support.subTests('echo_char', [b"*", 0, 0.0, [], {}])
233+
def test_rejects_non_string(self, echo_char):
234+
self.assertRaises(TypeError, getpass.getpass, echo_char=echo_char)
237235

238236

239237
if __name__ == "__main__":

0 commit comments

Comments
 (0)