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 @@ ...@@ -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 import PluggableIndex
from Products.PluginIndexes.common.util import parseIndexRequest from Products.PluginIndexes.common.util import parseIndexRequest
...@@ -21,6 +21,7 @@ from OFS.SimpleItem import SimpleItem ...@@ -21,6 +21,7 @@ from OFS.SimpleItem import SimpleItem
from Acquisition import Implicit from Acquisition import Implicit
from BTrees.OOBTree import OOBTree from BTrees.OOBTree import OOBTree
from BTrees.IIBTree import IISet,intersection,union from BTrees.IIBTree import IISet,intersection,union
from zLOG import ERROR, LOG
import FilteredSet import FilteredSet
_marker = [] _marker = []
...@@ -75,8 +76,13 @@ class TopicIndex(Persistent, Implicit, SimpleItem): ...@@ -75,8 +76,13 @@ class TopicIndex(Persistent, Implicit, SimpleItem):
""" hook for (Z)Catalog """ """ hook for (Z)Catalog """
for fs in self.filteredSets.values(): 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 return 1
......
...@@ -12,10 +12,9 @@ ...@@ -12,10 +12,9 @@
############################################################################## ##############################################################################
import Zope import ZODB
import os,sys,re,unittest import os,sys,re,unittest
from Products.PluginIndexes.TopicIndex.TopicIndex import TopicIndex from Products.PluginIndexes.TopicIndex.TopicIndex import TopicIndex
from Products.ZCatalog.ZCatalog import ZCatalog
class Obj: class Obj:
...@@ -84,57 +83,11 @@ class TestTopicIndex(TestBase): ...@@ -84,57 +83,11 @@ class TestTopicIndex(TestBase):
self._searchAnd(['doc1','doc2'],[]) 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(): def test_suite():
return unittest.TestSuite( ( return unittest.TestSuite( (
unittest.makeSuite(TestTopicIndex), 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