diff options
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/_strptime.py | 3 | ||||
-rw-r--r-- | Lib/test/test_strptime.py | 4 |
2 files changed, 7 insertions, 0 deletions
diff --git a/Lib/_strptime.py b/Lib/_strptime.py index 81c105f..4b7a7dd 100644 --- a/Lib/_strptime.py +++ b/Lib/_strptime.py @@ -423,6 +423,9 @@ def strptime(data_string, format="%a %b %d %H:%M:%S %Y"): found = format_regex.match(data_string) if not found: raise ValueError("time data did not match format") + if len(data_string) != found.end(): + raise ValueError("unconverted data remains: %s" % + data_string[found.end():]) year = 1900 month = day = 1 hour = minute = second = 0 diff --git a/Lib/test/test_strptime.py b/Lib/test/test_strptime.py index a106a42..2c3955b 100644 --- a/Lib/test/test_strptime.py +++ b/Lib/test/test_strptime.py @@ -227,6 +227,10 @@ class StrptimeTests(unittest.TestCase): self.assertRaises(ValueError, _strptime.strptime, data_string="%d", format="%A") + def test_unconverteddata(self): + # Check ValueError is raised when there is unconverted data + self.assertRaises(ValueError, _strptime.strptime, "10 12", "%m") + def helper(self, directive, position): """Helper fxn in testing.""" strf_output = time.strftime("%" + directive, self.time_tuple) |