def test_UnIndex(self): """ Setup a catalog deeper within the containment hierarchy and call the updateIndexes method. The indexed objects should should be restricted to the sublocations. """ from zope.catalog.catalog import indexDocSubscriber from zope.catalog.catalog import unindexDocSubscriber from zope.container.contained import ObjectAddedEvent from zope.container.contained import ObjectRemovedEvent ob = Stub() self.subfolder['ob'] = ob id = self.utility.register(ob) setSite(self.subfolder) res = self.cat.searchResults(name='ob') self.assertEqual(len(res), 0) setSite(None) indexDocSubscriber(ObjectAddedEvent(ob)) setSite(self.subfolder) res = self.cat.searchResults(name='ob') self.assertEqual(len(res), 1) setSite(None) unindexDocSubscriber(ObjectRemovedEvent(ob)) setSite(self.subfolder) res = self.cat.searchResults(name='ob') self.assertEqual(len(res), 0)
def test_indexDocSubscriber(self): from zope.catalog.catalog import indexDocSubscriber from zope.container.contained import ObjectAddedEvent from zope.intid.interfaces import IntIdAddedEvent ob = Stub() ob2 = Stub() self.root['ob'] = ob self.root['ob2'] = ob2 id = self.utility.register(ob) indexDocSubscriber(IntIdAddedEvent(ob, ObjectAddedEvent(ob2))) self.assertEqual(self.cat.regs, [(id, ob)]) self.assertEqual(self.cat.unregs, [])