def test_content_subscribers(self):
     """Content subscribers adapter search, index, unindex tests"""
     csubs = IContentSubscribers(self.content)
     relnames = ('invited', 'confirmed', 'attended')
     # test that there are no subscribers for any of the relnames for 
     # content yet
     assert self.sub not in self.container #not yet, at least
     for name in relnames:
         assert len(csubs.find(name)) == 0
     # index, and verify via find:
     csubs.index('invited', self.sub)
     assert self.sub in self.container # result of index through adapter
     assert self.sub in csubs.find('invited')
     assert 'invited' in csubs.subscriptions_for(self.sub)
     assert IItemSubscriber.providedBy(csubs.find('invited')[0])
     assert len(csubs.find('confirmed')) == 0
     assert len(csubs.find('attended')) == 0
     assert len(csubs.find()) == 1 #unamed, one subscription so far
     # index another name:
     csubs.index('confirmed', self.sub)
     assert self.sub in csubs.find('invited')
     assert self.sub in csubs.find('confirmed')
     assert 'confirmed' in csubs.subscriptions_for(self.sub)
     assert self.sub in csubs.find()
     # unindex, make sure item is not found:
     csubs.unindex('invited', self.sub)
     assert self.sub not in csubs.find('invited') #removed
     assert 'invited' not in csubs.subscriptions_for(self.sub)
     assert self.sub in csubs.find('confirmed')  #this still exists
     assert 'confirmed' in csubs.subscriptions_for(self.sub)
     # verify that we can look from the other direction at what we've done:
     subitems = ISubscriberItems(self.sub)
     assert self.content in subitems.find('confirmed')
     # finally, clean up:
     for name in relnames:
         csubs.unindex(name, self.sub)
         assert len(csubs.find(name)) == 0
 def test_subscriber_items(self):
     """Subscriber items adapter search, index, unindex tests"""
     subitems = ISubscriberItems(self.sub)
     relnames = ('invited', 'confirmed', 'attended')
     # verify that we are starting with a clean slate:
     for name in relnames:
         assert len(subitems.find(name)) == 0
     # index subscription to invited for self.content:
     subitems.index('invited', self.content)
     assert self.content in subitems.find('invited')
     # verify relationship from the other direction using the other adapter:
     csubs = IContentSubscribers(self.content)
     assert self.sub in csubs.find('invited')
     # finally, clean up:
     subitems.unindex('invited', self.content)
     for name in relnames:
         assert len(subitems.find(name)) == 0