Add node attribut to disco query responses
darcs-hash:20080304204116-86b55-6a6d4b30058b5d4cd64a5c8b050f61987fd7aba9.gz
This commit is contained in:
@@ -1263,7 +1263,7 @@ class CommandDiscoGetInfoHandler(DiscoHandler):
|
||||
Return infos for given command
|
||||
"""
|
||||
if not disco_obj:
|
||||
disco_obj = DiscoInfo()
|
||||
disco_obj = DiscoInfo(node)
|
||||
return [command_manager.get_command_info(disco_info=disco_obj,
|
||||
command_name=node,
|
||||
lang_class=lang_class)]
|
||||
@@ -1281,7 +1281,7 @@ class CommandDiscoGetItemsHandler(DiscoHandler):
|
||||
"""
|
||||
"""
|
||||
if not disco_obj:
|
||||
disco_obj = DiscoItems()
|
||||
disco_obj = DiscoItems(node)
|
||||
return [command_manager.list_commands(jid=info_query.get_from(),
|
||||
to_jid=info_query.get_to(),
|
||||
disco_items=disco_obj,
|
||||
|
||||
@@ -52,7 +52,7 @@ class RootDiscoGetInfoHandler(DiscoHandler):
|
||||
def handle(self, stanza, lang_class, node, disco_obj, data):
|
||||
"""Implement discovery get_info on main component JID"""
|
||||
self.__logger.debug("root_disco_get_info")
|
||||
disco_info = DiscoInfo()
|
||||
disco_info = DiscoInfo(node)
|
||||
disco_info.add_feature("jabber:iq:version")
|
||||
disco_info.add_feature("http://jabber.org/protocol/disco#info")
|
||||
disco_info.add_feature("http://jabber.org/protocol/disco#items")
|
||||
@@ -74,7 +74,7 @@ class AccountDiscoGetInfoHandler(DiscoHandler):
|
||||
def handle(self, stanza, lang_class, node, disco_obj, data):
|
||||
"""Implement discovery get_info on an account node"""
|
||||
self.__logger.debug("account_disco_get_info")
|
||||
disco_info = DiscoInfo()
|
||||
disco_info = DiscoInfo(node)
|
||||
disco_info.add_feature("jabber:iq:register")
|
||||
return [disco_info]
|
||||
|
||||
@@ -101,7 +101,7 @@ class RootDiscoGetItemsHandler(DiscoHandler):
|
||||
return None
|
||||
disco_items = None
|
||||
if self.component.account_manager.has_multiple_account_type: # list accounts with only one type declared
|
||||
disco_items = DiscoItems()
|
||||
disco_items = DiscoItems(node)
|
||||
for (account_type, type_label) in \
|
||||
self.component.account_manager.list_account_types(lang_class):
|
||||
DiscoItem(disco_items,
|
||||
@@ -111,7 +111,7 @@ class RootDiscoGetItemsHandler(DiscoHandler):
|
||||
type_label)
|
||||
|
||||
else:
|
||||
disco_items = DiscoItems()
|
||||
disco_items = DiscoItems(node)
|
||||
for (_account, resource, account_type) in \
|
||||
self.component.account_manager.list_accounts(unicode(from_jid.bare())):
|
||||
DiscoItem(disco_items,
|
||||
@@ -135,7 +135,7 @@ class AccountTypeDiscoGetItemsHandler(DiscoHandler):
|
||||
self.__logger.debug("Listing account for " + account_type)
|
||||
account_class = self.component.account_manager.get_account_class(account_type)
|
||||
if account_class is not None:
|
||||
disco_items = DiscoItems()
|
||||
disco_items = DiscoItems(node)
|
||||
for (_account, resource, account_type) in \
|
||||
self.component.account_manager.list_accounts(unicode(from_jid.bare()),
|
||||
account_class,
|
||||
|
||||
@@ -94,6 +94,7 @@ class CommandManager_TestCase(unittest.TestCase):
|
||||
to_jid=JID("jcl.test.com"),
|
||||
disco_items=DiscoItems(),
|
||||
lang_class=Lang.en)
|
||||
self.assertEquals(disco_items.get_node(), None)
|
||||
items = disco_items.get_items()
|
||||
self.assertEquals(len(items), 1)
|
||||
self.assertEquals(items[0].get_node(), "command2")
|
||||
@@ -117,8 +118,9 @@ class CommandManager_TestCase(unittest.TestCase):
|
||||
disco_items = command.command_manager.list_commands(\
|
||||
jid=JID("user@test.com"),
|
||||
to_jid=JID("jcl.test.com/Example"),
|
||||
disco_items=DiscoItems(),
|
||||
disco_items=DiscoItems("Example"),
|
||||
lang_class=Lang.en)
|
||||
self.assertEquals(disco_items.get_node(), "Example")
|
||||
items = disco_items.get_items()
|
||||
self.assertEquals(len(items), 1)
|
||||
self.assertEquals(items[0].get_node(), "command12")
|
||||
@@ -142,8 +144,9 @@ class CommandManager_TestCase(unittest.TestCase):
|
||||
disco_items = command.command_manager.list_commands(\
|
||||
jid=JID("user@test.com"),
|
||||
to_jid=JID("account@jcl.test.com/Example"),
|
||||
disco_items=DiscoItems(),
|
||||
disco_items=DiscoItems("Example/account1"),
|
||||
lang_class=Lang.en)
|
||||
self.assertEquals(disco_items.get_node(), "Example/account1")
|
||||
items = disco_items.get_items()
|
||||
self.assertEquals(len(items), 1)
|
||||
self.assertEquals(items[0].get_node(), "command22")
|
||||
@@ -161,6 +164,7 @@ class CommandManager_TestCase(unittest.TestCase):
|
||||
to_jid=JID("jcl.test.com"),
|
||||
disco_items=DiscoItems(),
|
||||
lang_class=Lang.en)
|
||||
self.assertEquals(disco_items.get_node(), None)
|
||||
items = disco_items.get_items()
|
||||
self.assertEquals(len(items), 2)
|
||||
self.assertEquals(items[0].get_node(), "command1")
|
||||
@@ -181,6 +185,7 @@ class CommandManager_TestCase(unittest.TestCase):
|
||||
to_jid=JID("jcl.test.com"),
|
||||
disco_items=DiscoItems(),
|
||||
lang_class=Lang.en)
|
||||
self.assertEquals(disco_items.get_node(), None)
|
||||
items = disco_items.get_items()
|
||||
self.assertEquals(len(items), 2)
|
||||
self.assertEquals(items[0].get_node(), "command1")
|
||||
@@ -325,9 +330,8 @@ class CommandManager_TestCase(unittest.TestCase):
|
||||
"command")
|
||||
command_node.setProp("node",
|
||||
"command1")
|
||||
result = command.command_manager.execute_multi_step_command(info_query,
|
||||
"command1",
|
||||
None)
|
||||
result = command.command_manager.execute_multi_step_command(\
|
||||
info_query, "command1", None)
|
||||
self.assertEquals(result[0].get_type(), "error")
|
||||
child = result[0].xmlnode.children
|
||||
self.assertEquals(child.name, "command")
|
||||
|
||||
@@ -499,6 +499,7 @@ class JCLComponent_TestCase(JCLTestCase):
|
||||
from_jid="user1@test.com",
|
||||
to_jid="jcl.test.com")
|
||||
disco_info = self.comp.disco_get_info(None, info_query)
|
||||
self.assertEquals(disco_info.get_node(), None)
|
||||
self.assertEquals(len(self.comp.stream.sent), 0)
|
||||
self.assertEquals(disco_info.get_identities()[0].get_name(), self.comp.name)
|
||||
self.assertTrue(disco_info.has_feature("jabber:iq:version"))
|
||||
@@ -512,6 +513,7 @@ class JCLComponent_TestCase(JCLTestCase):
|
||||
from_jid="user1@test.com",
|
||||
to_jid="jcl.test.com")
|
||||
disco_info = self.comp.disco_get_info(None, info_query)
|
||||
self.assertEquals(disco_info.get_node(), None)
|
||||
self.assertEquals(len(self.comp.stream.sent), 0)
|
||||
self.assertEquals(disco_info.get_identities()[0].get_name(),
|
||||
self.comp.name)
|
||||
@@ -525,6 +527,7 @@ class JCLComponent_TestCase(JCLTestCase):
|
||||
from_jid="user1@test.com",
|
||||
to_jid="node_test@jcl.test.com")
|
||||
disco_info = self.comp.disco_get_info("node_test", info_query)
|
||||
self.assertEquals(disco_info.get_node(), "node_test")
|
||||
self.assertEquals(len(self.comp.stream.sent), 0)
|
||||
self.assertTrue(disco_info.has_feature("jabber:iq:register"))
|
||||
|
||||
@@ -537,6 +540,7 @@ class JCLComponent_TestCase(JCLTestCase):
|
||||
to_jid="node_test@jcl.test.com/node_type")
|
||||
disco_info = self.comp.disco_get_info("node_type/node_test",
|
||||
info_query)
|
||||
self.assertEquals(disco_info.get_node(), "node_type/node_test")
|
||||
self.assertEquals(len(self.comp.stream.sent), 0)
|
||||
self.assertTrue(disco_info.has_feature("jabber:iq:register"))
|
||||
|
||||
@@ -553,9 +557,13 @@ class JCLComponent_TestCase(JCLTestCase):
|
||||
info_query = Iq(stanza_type="get",
|
||||
from_jid="user1@test.com",
|
||||
to_jid="jcl.test.com")
|
||||
disco_info = self.comp.disco_get_info("http://jabber.org/protocol/admin#get-disabled-users-num",
|
||||
disco_info = self.comp.disco_get_info(\
|
||||
"http://jabber.org/protocol/admin#get-disabled-users-num",
|
||||
info_query)
|
||||
self.assertEquals(len(self.comp.stream.sent), 0)
|
||||
self.assertEquals(\
|
||||
disco_info.get_node(),
|
||||
"http://jabber.org/protocol/admin#get-disabled-users-num")
|
||||
self.assertTrue(disco_info.has_feature("http://jabber.org/protocol/commands"))
|
||||
self.assertEquals(len(disco_info.get_identities()), 1)
|
||||
self.assertEquals(disco_info.get_identities()[0].get_category(),
|
||||
@@ -570,17 +578,16 @@ class JCLComponent_TestCase(JCLTestCase):
|
||||
###########################################################################
|
||||
def test_disco_get_items_1type_no_node(self):
|
||||
"""get_items on main entity. Must list accounts"""
|
||||
model.db_connect()
|
||||
self.comp.stream = MockStream()
|
||||
self.comp.stream_class = MockStream
|
||||
account1 = Account(user=User(jid="user1@test.com"),
|
||||
name="account1",
|
||||
jid="account1@jcl.test.com")
|
||||
model.db_disconnect()
|
||||
info_query = Iq(stanza_type="get",
|
||||
from_jid="user1@test.com",
|
||||
to_jid="jcl.test.com")
|
||||
disco_items = self.comp.disco_get_items(None, info_query)
|
||||
self.assertEquals(disco_items.get_node(), None)
|
||||
self.assertEquals(len(disco_items.get_items()), 1)
|
||||
disco_item = disco_items.get_items()[0]
|
||||
self.assertEquals(disco_item.get_jid(), account1.jid)
|
||||
@@ -589,11 +596,9 @@ class JCLComponent_TestCase(JCLTestCase):
|
||||
|
||||
def test_disco_get_items_unknown_node(self):
|
||||
self.comp.account_manager.account_classes = (ExampleAccount, )
|
||||
model.db_connect()
|
||||
account11 = ExampleAccount(user=User(jid="user1@test.com"),
|
||||
name="account11",
|
||||
jid="account11@jcl.test.com")
|
||||
model.db_disconnect()
|
||||
info_query = Iq(stanza_type="get",
|
||||
from_jid="user1@test.com",
|
||||
to_jid="jcl.test.com")
|
||||
@@ -602,7 +607,6 @@ class JCLComponent_TestCase(JCLTestCase):
|
||||
|
||||
def test_disco_get_items_unknown_node_multiple_account_types(self):
|
||||
self.comp.account_manager.account_classes = (ExampleAccount, Example2Account)
|
||||
model.db_connect()
|
||||
user1 = User(jid="user1@test.com")
|
||||
account11 = ExampleAccount(user=user1,
|
||||
name="account11",
|
||||
@@ -610,7 +614,6 @@ class JCLComponent_TestCase(JCLTestCase):
|
||||
account21 = Example2Account(user=user1,
|
||||
name="account21",
|
||||
jid="account21@jcl.test.com")
|
||||
model.db_disconnect()
|
||||
info_query = Iq(stanza_type="get",
|
||||
from_jid="user1@test.com",
|
||||
to_jid="jcl.test.com")
|
||||
@@ -620,11 +623,9 @@ class JCLComponent_TestCase(JCLTestCase):
|
||||
|
||||
def test_disco_get_items_1type_with_node(self):
|
||||
"""get_items on an account. Must return nothing"""
|
||||
model.db_connect()
|
||||
account1 = Account(user=User(jid="user1@test.com"),
|
||||
name="account1",
|
||||
jid="account1@jcl.test.com")
|
||||
model.db_disconnect()
|
||||
info_query = Iq(stanza_type="get",
|
||||
from_jid="user1@test.com",
|
||||
to_jid="account1@jcl.test.com")
|
||||
@@ -637,7 +638,6 @@ class JCLComponent_TestCase(JCLTestCase):
|
||||
self.comp.account_manager.account_classes = (ExampleAccount, Example2Account)
|
||||
self.comp.stream = MockStream()
|
||||
self.comp.stream_class = MockStream
|
||||
model.db_connect()
|
||||
user1 = User(jid="user1@test.com")
|
||||
account11 = ExampleAccount(user=user1,
|
||||
name="account11",
|
||||
@@ -645,11 +645,11 @@ class JCLComponent_TestCase(JCLTestCase):
|
||||
account21 = Example2Account(user=user1,
|
||||
name="account21",
|
||||
jid="account21@jcl.test.com")
|
||||
model.db_disconnect()
|
||||
info_query = Iq(stanza_type="get",
|
||||
from_jid="user1@test.com",
|
||||
to_jid="jcl.test.com")
|
||||
disco_items = self.comp.disco_get_items(None, info_query)
|
||||
self.assertEquals(disco_items.get_node(), None)
|
||||
self.assertEquals(len(disco_items.get_items()), 2)
|
||||
disco_item = disco_items.get_items()[0]
|
||||
self.assertEquals(unicode(disco_item.get_jid()),
|
||||
@@ -672,7 +672,6 @@ class JCLComponent_TestCase(JCLTestCase):
|
||||
self.comp.account_manager.account_classes = (ExampleAccount, Example2Account)
|
||||
self.comp.stream = MockStream()
|
||||
self.comp.stream_class = MockStream
|
||||
model.db_connect()
|
||||
user1 = User(jid="user1@test.com")
|
||||
user2 = User(jid="user2@test.com")
|
||||
account11 = ExampleAccount(user=user1,
|
||||
@@ -687,11 +686,11 @@ class JCLComponent_TestCase(JCLTestCase):
|
||||
account22 = Example2Account(user=user2,
|
||||
name="account22",
|
||||
jid="account22@jcl.test.com")
|
||||
model.db_disconnect()
|
||||
info_query = Iq(stanza_type="get",
|
||||
from_jid="user1@test.com",
|
||||
to_jid="jcl.test.com/Example")
|
||||
disco_items = self.comp.disco_get_items("Example", info_query)
|
||||
self.assertEquals(disco_items.get_node(), "Example")
|
||||
self.assertEquals(len(disco_items.get_items()), 1)
|
||||
disco_item = disco_items.get_items()[0]
|
||||
self.assertEquals(unicode(disco_item.get_jid()), unicode(account11.jid) + "/Example")
|
||||
@@ -704,7 +703,6 @@ class JCLComponent_TestCase(JCLTestCase):
|
||||
self.comp.account_manager.account_classes = (ExampleAccount, Example2Account)
|
||||
self.comp.stream = MockStream()
|
||||
self.comp.stream_class = MockStream
|
||||
model.db_connect()
|
||||
user1 = User(jid="user1@test.com")
|
||||
user2 = User(jid="user2@test.com")
|
||||
account11 = ExampleAccount(user=user1,
|
||||
@@ -719,12 +717,12 @@ class JCLComponent_TestCase(JCLTestCase):
|
||||
account22 = Example2Account(user=user2,
|
||||
name="account22",
|
||||
jid="account22@jcl.test.com")
|
||||
model.db_disconnect()
|
||||
info_query = Iq(stanza_type="get",
|
||||
from_jid="user2@test.com",
|
||||
to_jid="jcl.test.com/Example2")
|
||||
disco_items = self.comp.disco_get_items("Example2", info_query)
|
||||
self.assertEquals(len(disco_items.get_items()), 1)
|
||||
self.assertEquals(disco_items.get_node(), "Example2")
|
||||
disco_item = disco_items.get_items()[0]
|
||||
self.assertEquals(unicode(disco_item.get_jid()), unicode(account22.jid) + "/Example2")
|
||||
self.assertEquals(disco_item.get_node(), "Example2/" + account22.name)
|
||||
@@ -733,11 +731,9 @@ class JCLComponent_TestCase(JCLTestCase):
|
||||
def test_disco_get_items_2types_with_long_node(self):
|
||||
"""get_items on a first type account. Must return nothing"""
|
||||
self.comp.account_manager.account_classes = (ExampleAccount, Example2Account)
|
||||
model.db_connect()
|
||||
account1 = ExampleAccount(user=User(jid="user1@test.com"),
|
||||
name="account1",
|
||||
jid="account1@jcl.test.com")
|
||||
model.db_disconnect()
|
||||
info_query = Iq(stanza_type="get",
|
||||
from_jid="user1@test.com",
|
||||
to_jid="account1@jcl.test.com/Example")
|
||||
@@ -747,15 +743,14 @@ class JCLComponent_TestCase(JCLTestCase):
|
||||
def test_disco_get_items_2types_with_long_node2(self):
|
||||
"""get_items on a second type account. Must return nothing"""
|
||||
self.comp.account_manager.account_classes = (ExampleAccount, Example2Account)
|
||||
model.db_connect()
|
||||
account1 = Example2Account(user=User(jid="user1@test.com"),
|
||||
name="account1",
|
||||
jid="account1@jcl.test.com")
|
||||
model.db_disconnect()
|
||||
info_query = Iq(stanza_type="get",
|
||||
from_jid="user1@test.com",
|
||||
to_jid="account1@jcl.test.com/Example2")
|
||||
disco_items = self.comp.disco_get_items("Example2/account1", info_query)
|
||||
disco_items = self.comp.disco_get_items("Example2/account1",
|
||||
info_query)
|
||||
self.assertEquals(disco_items, None)
|
||||
|
||||
def test_disco_root_get_items_list_commands(self):
|
||||
@@ -773,8 +768,11 @@ class JCLComponent_TestCase(JCLTestCase):
|
||||
info_query = Iq(stanza_type="get",
|
||||
from_jid="admin@test.com",
|
||||
to_jid="jcl.test.com")
|
||||
disco_items = self.comp.disco_get_items("http://jabber.org/protocol/commands",
|
||||
disco_items = self.comp.disco_get_items(\
|
||||
"http://jabber.org/protocol/commands",
|
||||
info_query)
|
||||
self.assertEquals(disco_items.get_node(),
|
||||
"http://jabber.org/protocol/commands")
|
||||
self.assertEquals(len(disco_items.get_items()), 22)
|
||||
|
||||
###########################################################################
|
||||
|
||||
Reference in New Issue
Block a user