def status(self): relname, signature, uid = self.resolve() adapted = IContentSubscribers(self.context) relnames = adapted.subscriptions_for(signature) if not relnames: return 'Unknown' return ', '.join(relnames)
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 subscriptions_for(self, signature): adapted = IContentSubscribers(self.context) return adapted.subscriptions_for(signature)