Commit bc90f3aa authored by Andreas Jung's avatar Andreas Jung

- removed duplicate tests

- logging an error message instead of raising an exception in case of
  unindex_object() failure
parent 6a655e73
......@@ -11,7 +11,7 @@
#
##############################################################################
__version__ = '$Id: TopicIndex.py,v 1.9 2002/08/14 22:19:34 mj Exp $'
__version__ = '$Id: TopicIndex.py,v 1.10 2002/11/28 16:32:02 andreasjung Exp $'
from Products.PluginIndexes import PluggableIndex
from Products.PluginIndexes.common.util import parseIndexRequest
......@@ -21,6 +21,7 @@ from OFS.SimpleItem import SimpleItem
from Acquisition import Implicit
from BTrees.OOBTree import OOBTree
from BTrees.IIBTree import IISet,intersection,union
from zLOG import ERROR, LOG
import FilteredSet
_marker = []
......@@ -75,8 +76,13 @@ class TopicIndex(Persistent, Implicit, SimpleItem):
""" hook for (Z)Catalog """
for fs in self.filteredSets.values():
fs.unindex_object(documentId)
try:
fs.unindex_object(documentId)
except KeyError:
LOG(self.__class__.__name__, ERROR,
'Attempt to unindex document'
' with id %s failed' % documentId)
return 1
......
......@@ -12,10 +12,9 @@
##############################################################################
import Zope
import ZODB
import os,sys,re,unittest
from Products.PluginIndexes.TopicIndex.TopicIndex import TopicIndex
from Products.ZCatalog.ZCatalog import ZCatalog
class Obj:
......@@ -84,57 +83,11 @@ class TestTopicIndex(TestBase):
self._searchAnd(['doc1','doc2'],[])
class ZCatalogTopicTests(TestBase):
def setUp(self):
self.cat = ZCatalog('catalog')
self.cat.addColumn('id')
self.cat.addIndex('topic','TopicIndex')
self.TI = self.cat._catalog.indexes['topic']
self.TI.addFilteredSet("doc1","PythonFilteredSet","o.meta_type=='doc1'")
self.TI.addFilteredSet("doc2","PythonFilteredSet","o.meta_type=='doc2'")
self.cat.catalog_object(Obj('0'))
self.cat.catalog_object(Obj('1','doc1'))
self.cat.catalog_object(Obj('2','doc1'))
self.cat.catalog_object(Obj('3','doc2'))
self.cat.catalog_object(Obj('4','doc2'))
self.cat.catalog_object(Obj('5','doc3'))
self.cat.catalog_object(Obj('6','doc3'))
def testOr(self):
self._searchOr('doc1',[1,2])
self._searchOr('doc2',[3,4])
self._searchOr(['doc1','doc2'],[1,2,3,4])
def testAnd(self):
self._searchAnd('doc1',[1,2])
self._searchAnd('doc2',[3,4])
self._searchAnd(['doc1','doc2'],[])
def _search(self,query,operator,expected):
res = self.cat.searchResults({'topic':{'query':query,'operator':operator}})
rows = [int(x.id) for x in res ]
rows.sort()
expected.sort()
self.assertEqual(rows,expected,query)
return rows,res
def test_suite():
return unittest.TestSuite( (
unittest.makeSuite(TestTopicIndex),
unittest.makeSuite(ZCatalogTopicTests),
))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment