[3.12] Add tests for time.strftime() with invalid format string (GH-125696) (GH-125701)

(cherry picked from commit 2e950e3419)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
This commit is contained in:
Miss Islington (bot) 2024-10-18 16:13:31 +02:00 committed by GitHub
parent aa9faee686
commit 93933782d9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -14,7 +14,7 @@ try:
except ImportError: except ImportError:
_testcapi = None _testcapi = None
from test.support import skip_if_buggy_ucrt_strfptime from test.support import skip_if_buggy_ucrt_strfptime, SuppressCrashReport
# Max year is only limited by the size of C int. # Max year is only limited by the size of C int.
SIZEOF_INT = sysconfig.get_config_var('SIZEOF_INT') or 4 SIZEOF_INT = sysconfig.get_config_var('SIZEOF_INT') or 4
@ -178,6 +178,17 @@ class TimeTestCase(unittest.TestCase):
self.assertRaises(TypeError, time.strftime, b'%S', tt) self.assertRaises(TypeError, time.strftime, b'%S', tt)
def test_strftime_invalid_format(self):
tt = time.gmtime(self.t)
with SuppressCrashReport():
for i in range(1, 128):
format = ' %' + chr(i)
with self.subTest(format=format):
try:
time.strftime(format, tt)
except ValueError as exc:
self.assertEqual(str(exc), 'Invalid format string')
def test_strftime_special(self): def test_strftime_special(self):
tt = time.gmtime(self.t) tt = time.gmtime(self.t)
s1 = time.strftime('%c', tt) s1 = time.strftime('%c', tt)