]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[3.13] Add tests for time.strftime() with invalid format string (GH-125696) (GH-125702)
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Fri, 18 Oct 2024 14:22:41 +0000 (16:22 +0200)
committerGitHub <noreply@github.com>
Fri, 18 Oct 2024 14:22:41 +0000 (14:22 +0000)
(cherry picked from commit 2e950e341930ea79549137d4d3771d5edb940e65)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Lib/test/test_time.py

index f8b99a9b6a63f5732ae73c88cbd19f756fdca55e..d368f08b610870ce4e59d9fdae53c26dba565477 100644 (file)
@@ -18,7 +18,7 @@ try:
 except ImportError:
     _testinternalcapi = 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.
 SIZEOF_INT = sysconfig.get_config_var('SIZEOF_INT') or 4
@@ -182,6 +182,17 @@ class TimeTestCase(unittest.TestCase):
 
         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):
         tt = time.gmtime(self.t)
         s1 = time.strftime('%c', tt)