[Zope-Checkins] CVS: Zope/lib/python/Products/PluginIndexes/DateIndex/tests - test_DateIndex.py:1.3
Chris McDonough
chrism@zope.com
Sun, 30 Jun 2002 01:45:37 -0400
Update of /cvs-repository/Zope/lib/python/Products/PluginIndexes/DateIndex/tests
In directory cvs.zope.org:/tmp/cvs-serv788/tests
Modified Files:
test_DateIndex.py
Log Message:
DateIndexes were handling neither float nor int dates as values to
_apply_index or index_object.
Fixed and added test cases to unittests.
=== Zope/lib/python/Products/PluginIndexes/DateIndex/tests/test_DateIndex.py 1.2 => 1.3 ===
from DateTime import DateTime
from Products.PluginIndexes.DateIndex.DateIndex import DateIndex
+from types import IntType, FloatType
+import time
class Dummy:
@@ -41,7 +43,9 @@
(2, Dummy('c', DateTime('2002-05-08 15:16:17'))),
(3, Dummy('d', DateTime('2032-05-08 15:16:17'))),
(4, Dummy('e', DateTime('2062-05-08 15:16:17'))),
- (5, Dummy('e', DateTime('2062-05-08 15:16:17')))
+ (5, Dummy('e', DateTime('2062-05-08 15:16:17'))),
+ (6, Dummy('f', 1072742620.0)),
+ (7, Dummy('f', 1072742900)),
)
self._index = DateIndex('date')
self._noop_req = {'bar': 123}
@@ -55,6 +59,8 @@
'date_usage': 'range:min:max'}
self._zero_req = {'date': 0}
self._none_req = {'date': None}
+ self._float_req = {'date': 1072742620.0}
+ self._int_req = {'date': 1072742900}
def _populateIndex( self ):
for k, v in self._values:
@@ -71,7 +77,10 @@
self.failUnless(k in result)
def _convert(self, date):
- yr, mo, dy, hr, mn = date.parts()[:5]
+ if type(date) in (FloatType, IntType):
+ yr, mo, dy, hr, mn = time.gmtime(date)[:5]
+ else:
+ yr, mo, dy, hr, mn = date.parts()[:5]
return (((yr * 12 + mo) * 31 + dy) * 24 + hr) * 60 + mn
def test_empty(self):
@@ -119,9 +128,11 @@
self.failUnless(index._apply_index(self._noop_req) is None)
self._checkApply(self._request, values[1:2])
- self._checkApply(self._min_req, values[3:])
- self._checkApply(self._max_req, values[1:4])
- self._checkApply(self._range_req, values[2:] )
+ self._checkApply(self._min_req, values[3:6])
+ self._checkApply(self._max_req, values[1:4] + values[6:])
+ self._checkApply(self._range_req, values[2:6] + values[6:] )
+ self._checkApply(self._float_req, [values[6]] )
+ self._checkApply(self._int_req, [values[7]] )
def test_suite():
suite = unittest.TestSuite()