Index: Lib/test/test_strftime.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/test/test_strftime.py,v retrieving revision 1.28 diff -u -r1.28 test_strftime.py --- Lib/test/test_strftime.py 2 Mar 2004 04:38:10 -0000 1.28 +++ Lib/test/test_strftime.py 20 Mar 2004 17:19:12 -0000 @@ -28,6 +28,16 @@ for i in range(25): strftest(now + (i + j*100)*23*3603) +def escapestr(text, ampm): + """Escape text to deal with possible locale values that have regex + syntax while allowing regex syntax used for the comparison.""" + new_text = re.escape(text) + new_text = new_text.replace(re.escape(ampm), ampm) + new_text = new_text.replace("\%", "%") + new_text = new_text.replace("\:", ":") + new_text = new_text.replace("\?", "?") + return new_text + def strftest(now): if verbose: print "strftime test for", time.ctime(now) @@ -110,7 +120,7 @@ except ValueError, error: print "Standard '%s' format gave error:" % e[0], error continue - if re.match(e[1], result): continue + if re.match(escapestr(e[1], ampm), result): continue if not result or result[0] == '%': print "Does not support standard '%s' format (%s)" % (e[0], e[2]) else: @@ -125,7 +135,7 @@ print "Error for nonstandard '%s' format (%s): %s" % \ (e[0], e[2], str(result)) continue - if re.match(e[1], result): + if re.match(escapestr(e[1], ampm), result): if verbose: print "Supports nonstandard '%s' format (%s)" % (e[0], e[2]) elif not result or result[0] == '%': @@ -143,4 +153,6 @@ s = s[:8] + '0' + s[9:] return s + + main()