Mercurial > libervia-pubsub
diff idavoll/memory_storage.py @ 171:bc269696ef42
Reply with the correct error condition on subscription when not subscribed.
Author: ralphm.
Fixes #7.
author | Ralph Meijer <ralphm@ik.nu> |
---|---|
date | Thu, 03 Jan 2008 13:10:25 +0000 |
parents | ef22e4150caa |
children | 246911bcb699 |
line wrap: on
line diff
--- a/idavoll/memory_storage.py Tue Oct 09 10:20:25 2007 +0000 +++ b/idavoll/memory_storage.py Thu Jan 03 13:10:25 2008 +0000 @@ -1,4 +1,4 @@ -# Copyright (c) 2003-2007 Ralph Meijer +# Copyright (c) 2003-2008 Ralph Meijer # See LICENSE for details. import copy @@ -68,7 +68,8 @@ subscription.state)) return defer.succeed(subscriptions) - + + class Node: implements(iidavoll.INode) @@ -84,7 +85,7 @@ def get_configuration(self): return self._config - + def get_meta_data(self): config = copy.copy(self._config) config["pubsub#node_type"] = self.type @@ -96,7 +97,7 @@ self._config[option] = options[option] return defer.succeed(None) - + def get_affiliation(self, entity): return defer.succeed(self._affiliations.get(entity.full())) @@ -121,7 +122,7 @@ try: del self._subscriptions[subscriber.full()] except KeyError: - return defer.fail(error.SubscriptionNotFound()) + return defer.fail(error.NotSubscribed()) return defer.succeed(None) @@ -137,7 +138,7 @@ if jid.internJID(subscriber).userhost() == entity.userhost() and \ subscription.state == 'subscribed': return defer.succeed(True) - + return defer.succeed(False) def get_affiliations(self): @@ -146,6 +147,7 @@ return defer.succeed(affiliations) + class LeafNodeMixin: type = 'leaf' @@ -180,7 +182,7 @@ self._itemlist.remove(item) del self._items[item_id] deleted.append(item_id) - + return defer.succeed(deleted) def get_items(self, max_items=None): @@ -189,7 +191,7 @@ else: list = self._itemlist return defer.succeed([item[0] for item in list]) - + def get_items_by_id(self, item_ids): items = [] for item_id in item_ids: @@ -207,6 +209,7 @@ return defer.succeed(None) + class LeafNode(Node, LeafNodeMixin): implements(iidavoll.ILeafNode) @@ -215,6 +218,7 @@ Node.__init__(self, node_id, owner, config) LeafNodeMixin.__init__(self) + class Subscription: def __init__(self, state):