diff options
Diffstat (limited to 'Lib/test/test_strptime.py')
| -rw-r--r-- | Lib/test/test_strptime.py | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/Lib/test/test_strptime.py b/Lib/test/test_strptime.py index 90aac5b..13a72d4 100644 --- a/Lib/test/test_strptime.py +++ b/Lib/test/test_strptime.py @@ -218,6 +218,16 @@ class StrptimeTests(unittest.TestCase): else: self.fail("'%s' did not raise ValueError" % bad_format) + def test_strptime_exception_context(self): + # check that this doesn't chain exceptions needlessly (see #17572) + with self.assertRaises(ValueError) as e: + _strptime._strptime_time('', '%D') + self.assertIs(e.exception.__suppress_context__, True) + # additional check for IndexError branch (issue #19545) + with self.assertRaises(ValueError) as e: + _strptime._strptime_time('19', '%Y %') + self.assertIs(e.exception.__suppress_context__, True) + def test_unconverteddata(self): # Check ValueError is raised when there is unconverted data self.assertRaises(ValueError, _strptime._strptime_time, "10 12", "%m") @@ -313,7 +323,7 @@ class StrptimeTests(unittest.TestCase): # when time.tzname[0] == time.tzname[1] and time.daylight tz_name = time.tzname[0] if tz_name.upper() in ("UTC", "GMT"): - return + self.skipTest('need non-UTC/GMT timezone') try: original_tzname = time.tzname original_daylight = time.daylight @@ -526,7 +536,7 @@ class CacheTests(unittest.TestCase): try: locale.setlocale(locale.LC_TIME, ('en_US', 'UTF8')) except locale.Error: - return + self.skipTest('test needs en_US.UTF8 locale') try: _strptime._strptime_time('10', '%d') # Get id of current cache object. @@ -543,7 +553,7 @@ class CacheTests(unittest.TestCase): # If this is the case just suppress the exception and fall-through # to the resetting to the original locale. except locale.Error: - pass + self.skipTest('test needs de_DE.UTF8 locale') # Make sure we don't trample on the locale setting once we leave the # test. finally: |
