Change time.strptime() to raise ValueError whenever there is an error in the
format string.  Before exceptions generated by the internal code propagated up
to the user and were not helpful.

Closes bug #1340337.
diff --git a/Lib/test/test_strptime.py b/Lib/test/test_strptime.py
index f9763aa..ba65649 100644
--- a/Lib/test/test_strptime.py
+++ b/Lib/test/test_strptime.py
@@ -197,10 +197,20 @@
         """Create testing time tuple."""
         self.time_tuple = time.gmtime()
 
-    def test_TypeError(self):
-        # Make sure ValueError is raised when match fails
+    def test_ValueError(self):
+        # Make sure ValueError is raised when match fails or format is bad
         self.assertRaises(ValueError, _strptime.strptime, data_string="%d",
                           format="%A")
+        for bad_format in ("%", "% ", "%e"):
+            try:
+                _strptime.strptime("2005", bad_format)
+            except ValueError:
+                continue
+            except Exception, err:
+                self.fail("'%s' raised %s, not ValueError" %
+                            (bad_format, err.__class__.__name__))
+            else:
+                self.fail("'%s' did not raise ValueError" % bad_format)
 
     def test_unconverteddata(self):
         # Check ValueError is raised when there is unconverted data