Skip to content

Commit 644f577

Browse files
committed
change a bit the digestmod tests
1 parent 4177afa commit 644f577

File tree

1 file changed

+34
-32
lines changed

1 file changed

+34
-32
lines changed

Lib/test/test_hmac.py

Lines changed: 34 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -548,47 +548,47 @@ def func(self, *, __name=name): # __name needed to bind 'name'
548548

549549
class DigestModTestCaseMixin(CreatorMixin, DigestMixin):
550550

551-
def make_digestmod_cases(self, func, digestmods):
552-
return [
553-
*[
554-
(func, args, dict(digestmod=digestmod))
555-
for args in [(self.key,), (self.key, self.msg)]
556-
for digestmod in digestmods
557-
],
558-
*[
559-
(func, (self.key,), dict(msg=self.msg, digestmod=digestmod))
560-
for digestmod in digestmods
561-
],
562-
]
563-
564551
def assert_raises_missing_digestmod(self):
565552
return self.assertRaisesRegex(TypeError, "Missing required.*digestmod")
566553

567-
def assert_raises_invalid_digestmod(self):
554+
def assert_raises_unknown_digestmod(self):
568555
return self.assertRaisesRegex(ValueError, "[Uu]nsupported.*")
569556

570557
def test_constructor_missing_digestmod(self):
571558
catcher = self.assert_raises_missing_digestmod
572559
self.do_test_constructor_missing_digestmod(catcher)
573560

574-
def test_constructor_invalid_digestmod(self):
575-
catcher = self.assert_raises_invalid_digestmod
576-
self.do_test_constructor_invalid_digestmod(catcher)
561+
def test_constructor_unknown_digestmod(self):
562+
catcher = self.assert_raises_unknown_digestmod
563+
self.do_test_constructor_unknown_digestmod(catcher)
577564

578565
def do_test_constructor_missing_digestmod(self, catcher):
579566
for func, args, kwds in self.cases_missing_digestmod_in_constructor():
580567
with self.subTest(args=args, kwds=kwds), catcher():
581568
func(*args, **kwds)
582569

583-
def do_test_constructor_invalid_digestmod(self, catcher):
584-
for func, args, kwds in self.cases_invalid_digestmod_in_constructor():
570+
def do_test_constructor_unknown_digestmod(self, catcher):
571+
for func, args, kwds in self.cases_unknown_digestmod_in_constructor():
585572
with self.subTest(args=args, kwds=kwds), catcher():
586573
func(*args, **kwds)
587574

575+
def make_invalid_digestmod_cases(self, func, invalid_values):
576+
"""Generate cases for either missing or unknown digestmod tests."""
577+
key = b'unused key'
578+
msg = b'unused msg'
579+
580+
cases = []
581+
for digestmod in invalid_values:
582+
kwargs = {'digestmod': digestmod}
583+
cases.append((func, (key,), kwargs))
584+
cases.append((func, (key, msg), kwargs))
585+
cases.append((func, (key,), kwargs | {'msg': msg}))
586+
return cases
587+
588588
def cases_missing_digestmod_in_constructor(self):
589589
raise NotImplementedError
590590

591-
def cases_invalid_digestmod_in_constructor(self):
591+
def cases_unknown_digestmod_in_constructor(self):
592592
raise NotImplementedError
593593

594594

@@ -633,12 +633,13 @@ class PyConstructorBaseMixin(PyModuleMixin,
633633
ConstructorTestCaseMixin):
634634

635635
def cases_missing_digestmod_in_constructor(self):
636-
func, key, msg = self.hmac_new, b'key', b'msg'
637-
cases = self.make_digestmod_cases(func, ['', None, False])
638-
return [*cases, (func, (key,), {}), (func, (key, msg), {})]
636+
func, key, msg = self.hmac_new, b'unused key', b'unused msg'
637+
cases = self.make_invalid_digestmod_cases(func, ['', None, False])
638+
cases.extend([(func, (key,), {}), (func, (key, msg), {})])
639+
return cases
639640

640-
def cases_invalid_digestmod_in_constructor(self):
641-
return self.make_digestmod_cases(self.hmac_new, ['unknown'])
641+
def cases_unknown_digestmod_in_constructor(self):
642+
return self.make_invalid_digestmod_cases(self.hmac_new, ['unknown'])
642643

643644
@requires_builtin_sha2()
644645
def test_constructor_with_module(self):
@@ -695,16 +696,17 @@ def assert_digestmod_error(self):
695696
def test_constructor_missing_digestmod(self):
696697
self.do_test_constructor_missing_digestmod(self.assert_digestmod_error)
697698

698-
def test_constructor_invalid_digestmod(self):
699-
self.do_test_constructor_invalid_digestmod(self.assert_digestmod_error)
699+
def test_constructor_unknown_digestmod(self):
700+
self.do_test_constructor_unknown_digestmod(self.assert_digestmod_error)
700701

701702
def cases_missing_digestmod_in_constructor(self):
702-
func, key, msg = self.hmac_new, b'key', b'msg'
703-
cases = self.make_digestmod_cases(func, ['', None, False])
704-
return [*cases, (func, (key,), {}), (func, (key, msg), {})]
703+
func, key, msg = self.hmac_new, b'unused key', b'unused msg'
704+
cases = self.make_invalid_digestmod_cases(func, ['', None, False])
705+
cases.extend([(func, (key,), {}), (func, (key, msg), {})])
706+
return cases
705707

706-
def cases_invalid_digestmod_in_constructor(self):
707-
return self.make_digestmod_cases(self.hmac_new, ['unknown', 1234])
708+
def cases_unknown_digestmod_in_constructor(self):
709+
return self.make_invalid_digestmod_cases(self.hmac_new, ['unknown', 1234])
708710

709711

710712
class OpenSSLConstructorTestCase(ThroughOpenSSLAPIMixin,

0 commit comments

Comments
 (0)