[Zope-Checkins] CVS: Products/PluginIndexes/DateIndex/tests - test_DateIndex.py:1.5.2.5

Zachery Bir zbir at urbanape.com
Wed Aug 24 11:38:36 EDT 2005


Update of /cvs-repository/Products/PluginIndexes/DateIndex/tests
In directory cvs.zope.org:/tmp/cvs-serv19773

Modified Files:
      Tag: Zope-2_7-branch
	test_DateIndex.py 
Log Message:
  - deleted trailing whitespace

  - new test for removal (indexing an object with a value of None
    should remove it from the index)


=== Products/PluginIndexes/DateIndex/tests/test_DateIndex.py 1.5.2.4 => 1.5.2.5 ===
--- Products/PluginIndexes/DateIndex/tests/test_DateIndex.py:1.5.2.4	Thu Feb  5 12:49:02 2004
+++ Products/PluginIndexes/DateIndex/tests/test_DateIndex.py	Wed Aug 24 11:38:36 2005
@@ -109,13 +109,13 @@
             (7, Dummy('f', 1072742900)),                      # 1073545928
             (8, Dummy('g', date(2034,2,5))),                   # 1073599200
             (9, Dummy('h', datetime(2034,2,5,15,17,5))),       # (1073600117UTC)
-            (10, Dummy('i', datetime(2034,2,5,10,17,5, 
+            (10, Dummy('i', datetime(2034,2,5,10,17,5,
                                      tzinfo=Eastern))),        # 1073600117
         )
         self._index = DateIndex('date')
         self._noop_req  = {'bar': 123}
         self._request   = {'date': DateTime(0)}
-        self._min_req   = {'date': {'query': DateTime('2032-05-08 15:16:17'),  
+        self._min_req   = {'date': {'query': DateTime('2032-05-08 15:16:17'),
             'range': 'min'}}
         self._max_req   = {'date': {'query': DateTime('2032-05-08 15:16:17'),
             'range': 'max'}}
@@ -204,20 +204,33 @@
         self._checkApply(self._range_req, values[2:] )
         self._checkApply(self._float_req, [values[6]] )
         self._checkApply(self._int_req, [values[7]] )
-    
+
     def test_naive_convert_to_utc(self):
         values = self._values
         index = self._index
         index.index_naive_time_as_local = False
         self._populateIndex()
-        for k, v in values[9:]: 
+        for k, v in values[9:]:
             # assert that the timezone is effectively UTC for item 9,
             # and still correct for item 10
             yr, mo, dy, hr, mn = v.date().utctimetuple()[:5]
             val = (((yr * 12 + mo) * 31 + dy) * 24 + hr) * 60 + mn
             self.failUnlessEqual(self._index.getEntryForObject(k), val)
-            
-        
+
+    def test_removal(self):
+        """ DateIndex would hand back spurious entries when used as a
+            sort_index, because it previously was not removing entries
+            from the _unindex when indexing an object with a value of
+            None. The catalog consults a sort_index's
+            documentToKeyMap() to build the brains.
+        """
+        values = self._values
+        index = self._index
+        self._populateIndex()
+        self._checkApply(self._int_req, [values[7]])
+        index.index_object(7, None)
+        self.failIf(7 in index.documentToKeyMap().keys())
+
 
 def test_suite():
     suite = unittest.TestSuite()



More information about the Zope-Checkins mailing list