[Checkins] SVN: zope.datetime/trunk/ Added test cases from LP #139360
Tres Seaver
tseaver at palladion.com
Wed Apr 14 18:29:36 EDT 2010
Log message for revision 110918:
Added test cases from LP #139360
All 1638 passed without modification to the ``parse`` function.
Changed:
A zope.datetime/trunk/.bzrignore
U zope.datetime/trunk/CHANGES.txt
A zope.datetime/trunk/src/zope/datetime/tests/test_lp_139360.py
-=-
Added: zope.datetime/trunk/.bzrignore
===================================================================
--- zope.datetime/trunk/.bzrignore (rev 0)
+++ zope.datetime/trunk/.bzrignore 2010-04-14 22:29:36 UTC (rev 110918)
@@ -0,0 +1,6 @@
+./.installed.cfg
+./bin
+./develop-eggs
+./eggs
+./parts
+*.egg-info
Modified: zope.datetime/trunk/CHANGES.txt
===================================================================
--- zope.datetime/trunk/CHANGES.txt 2010-04-14 21:25:25 UTC (rev 110917)
+++ zope.datetime/trunk/CHANGES.txt 2010-04-14 22:29:36 UTC (rev 110918)
@@ -4,7 +4,8 @@
3.4.1 (unreleased)
------------------
-- ...
+- Added test cases from LP #139360 (all passed without modification to
+ the ``parse`` function).
3.4.0 (2007-07-20)
------------------
Added: zope.datetime/trunk/src/zope/datetime/tests/test_lp_139360.py
===================================================================
--- zope.datetime/trunk/src/zope/datetime/tests/test_lp_139360.py (rev 0)
+++ zope.datetime/trunk/src/zope/datetime/tests/test_lp_139360.py 2010-04-14 22:29:36 UTC (rev 110918)
@@ -0,0 +1,60 @@
+import unittest
+
+# The separator character:
+s = '-'
+
+# The sets of single digit days and months:
+D = [(d, repr(d)) for d in range(1, 10)]
+M = [(m, repr(m)) for m in range(1, 10)]
+
+# The sets of double digit days and months:
+DD = [(d, dr.rjust(2, '0')) for d, dr in D] + [(d, repr(d)) for d in range(10, 31)]
+MM = [(m, mr.rjust(2, '0')) for m, mr in M] + [(m, repr(m)) for m in range(10, 13)]
+
+# The set of years:
+YYYY = [(2001, '2001')]
+
+# The sets of mixed-endian date strings (where each string is stored with its component values):
+M_D_YYYY = [((d, m, y), s.join([mr, dr, yr])) for d, dr in D for m, mr in M for y, yr in YYYY]
+M_DD_YYYY = [((d, m, y), s.join([mr, dr, yr])) for d, dr in DD for m, mr in M for y, yr in YYYY]
+MM_D_YYYY = [((d, m, y), s.join([mr, dr, yr])) for d, dr in D for m, mr in MM for y, yr in YYYY]
+MM_DD_YYYY = [((d, m, y), s.join([mr, dr, yr])) for d, dr in DD for m, mr in MM for y, yr in YYYY]
+
+# The sets of big-endian date strings (where each string is stored with its component values):
+YYYY_M_D = [((d, m, y), s.join([yr, mr, dr])) for d, dr in D for m, mr in M for y, yr in YYYY]
+YYYY_M_DD = [((d, m, y), s.join([yr, mr, dr])) for d, dr in DD for m, mr in M for y, yr in YYYY]
+YYYY_MM_D = [((d, m, y), s.join([yr, mr, dr])) for d, dr in D for m, mr in MM for y, yr in YYYY]
+YYYY_MM_DD = [((d, m, y), s.join([yr, mr, dr])) for d, dr in DD for m, mr in MM for y, yr in YYYY]
+
+# The combined sets of mixed- and big-endian date strings:
+dates_ME = M_D_YYYY + M_DD_YYYY + MM_D_YYYY + MM_DD_YYYY
+dates_BE = YYYY_M_D + YYYY_M_DD + YYYY_MM_D + YYYY_MM_DD
+
+# The set of all date strings:
+dates = dates_ME + dates_BE
+
+class LP_139360(unittest.TestCase):
+
+ def _callFUT(self, text):
+ from zope.datetime import parse
+ return parse(text)
+
+
+# For each date string, compare the output of the
+# parser with the component values of that date:
+for i, ((d, m, y), string) in enumerate(dates):
+ method_name = 'test_%09d' % i
+ def _test(self):
+ yp, mp, dp, _, _, _, _ = self._callFUT(string)
+ self.assertEqual(y, yp)
+ self.assertEqual(m, mp)
+ self.assertEqual(d, dp)
+
+ _test.__name__ = method_name
+ setattr(LP_139360, method_name, _test)
+
+
+def test_suite():
+ return unittest.TestSuite((
+ unittest.makeSuite(LP_139360),
+ ))
More information about the checkins
mailing list