diff options
author | Guido van Rossum <guido@python.org> | 1996-12-12 19:03:11 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 1996-12-12 19:03:11 (GMT) |
commit | 483705c5a9283630ce38837a1158d71672b845ce (patch) | |
tree | 4b54752f1c6d24fe820035b93b7e47dc0024e471 /Lib | |
parent | 6cdd7a0433aaf9d28ebb912276c704e755e64543 (diff) | |
download | cpython-483705c5a9283630ce38837a1158d71672b845ce.zip cpython-483705c5a9283630ce38837a1158d71672b845ce.tar.gz cpython-483705c5a9283630ce38837a1158d71672b845ce.tar.bz2 |
Added test_strftime (Skip Montanaro).
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/test/output/test_strftime | 5 | ||||
-rwxr-xr-x | Lib/test/test_strftime.py | 82 | ||||
-rw-r--r-- | Lib/test/testall.py | 1 |
3 files changed, 88 insertions, 0 deletions
diff --git a/Lib/test/output/test_strftime b/Lib/test/output/test_strftime new file mode 100644 index 0000000..1564499 --- /dev/null +++ b/Lib/test/output/test_strftime @@ -0,0 +1,5 @@ +test_strftime +Strftime test, platform: irix5, Python version: 1.4 +Does not appear to support '%k' format +Does not appear to support '%s' format +Does not appear to support '%3y' format diff --git a/Lib/test/test_strftime.py b/Lib/test/test_strftime.py new file mode 100755 index 0000000..5e54b43 --- /dev/null +++ b/Lib/test/test_strftime.py @@ -0,0 +1,82 @@ +#! /usr/bin/env python + +# Sanity checker for time.strftime + +import time, calendar, sys, string, os + +now = time.time() +fp = os.popen('date') +fromdate = string.strip(fp.readline()) +fp.close() +nowsecs = int(now) +gmt = time.gmtime(now) +now = time.localtime(now) + +if gmt[3] < 12: ampm='AM' +else: ampm='PM' + +jan1 = time.localtime(time.mktime((now[0], 1, 1) + (0,)*6)) +wk1offset = jan1[6] - 6 + +if now[8]: tz = time.tzname[1] +else: tz = time.tzname[0] + +if now[3] >=12: clock12 = now[3] - 12 +else: clock12 = now[3] + +# descriptions are a mixture of those from the BSD/OS v2.0 man page +# (known to be incorrect in some instances) and the documentation for +# Python's time module + +expectations = ( + ('%A', calendar.day_name[now[6]], 'full weekday name'), + ('%a', calendar.day_abbr[now[6]], 'abbreviated weekday name'), + ('%B', calendar.month_name[now[1]], 'full month name'), + ('%b', calendar.month_abbr[now[1]], 'abbreviated month name'), + ('%h', calendar.month_abbr[now[1]], 'abbreviated month name'), + ('%c', time.asctime(now), 'asctime() format'), + ('%C', fromdate, 'date(1) format'), + ('%D', '%02d/%02d/%02d' % (now[1], now[2], (now[0]%100)), 'mm/dd/yy'), + ('%d', '%02d' % now[2], 'day of month as number (00-31)'), + ('%e', '%2d' % now[2], 'day of month as number, blank padded ( 0-31)'), + ('%H', '%02d' % now[3], 'hour (00-23)'), + ('%I', '%02d' % clock12, 'hour (00-12)'), + ('%j', '%03d' % now[7], 'julian day (001-366)'), + ('%k', '%2d' % now[3], 'hour, blank padded ( 0-23)'), + ('%M', '%02d' % now[4], 'minute, (00-59)'), + ('%m', '%02d' % now[1], 'month as number (01-12)'), + ('%n', '\n', 'newline character'), + ('%p', ampm, 'AM or PM as appropriate'), + ('%R', '%02d:%02d' % (now[3], now[4]), '%H:%M'), + ('%r', '%02d:%02d:%02d %s' % (clock12, now[4], now[5], ampm), + '%I:%M:%S %p'), + ('%t', '\t', 'tab character'), + ('%S', '%02d' % now[5], 'seconds of current time (00-60)'), + ('%s', '%d' % nowsecs, 'seconds since the Epoch in UCT'), + ('%T', '%02d:%02d:%02d' % (now[3], now[4], now[5]), '%H:%M:%S'), + ('%X', '%02d:%02d:%02d' % (now[3], now[4], now[5]), '%H:%M:%S'), + ('%U', '%02d' % (1+(wk1offset+now[7])/7), + 'week number of the year (Sun 1st)'), + ('%W', '%02d' % (1+now[7]/7), 'week number of the year (Mon 1st)'), + ('%w', '%d' % (1+now[6]), 'weekday as a number (Sun 1st)'), + ('%x', '%02d/%02d/%02d' % (now[1], now[2], (now[0]%100)), + '%m/%d/%y %H:%M:%S'), + ('%Y', '%d' % now[0], 'year with century'), + ('%y', '%02d' % (now[0]%100), 'year without century'), + ('%Z', tz, 'time zone name'), + ('%%', '%', 'single percent sign'), + ('%3y', '%03d' % (now[0]%100), + 'year without century rendered using fieldwidth'), + ) + +print "Strftime test, platform: %s, Python version: %s" % \ + (sys.platform, string.split(sys.version)[0]) + +for e in expectations: + result = time.strftime(e[0], now) + if result == e[1]: continue + if result[0] == '%': + print "Does not appear to support '%s' format" % e[0] + else: + print "Conflict for %s (%s):" % (e[0], e[2]) + print " Expected %s, but got %s" % (e[1], result) diff --git a/Lib/test/testall.py b/Lib/test/testall.py index f1a7cd6..7ad7b88 100644 --- a/Lib/test/testall.py +++ b/Lib/test/testall.py @@ -20,6 +20,7 @@ tests = ['test_grammar', 'test_pwd', 'test_rgbimg', 'test_select', + 'test_strftime', ] if __name__ == '__main__': |