disco_get_info and disco_get_items should not send their result but return it
darcs-hash:20070708205248-86b55-bcc9d63e8e0e245f633cfe9c3af665e6a4bae547.gz
This commit is contained in:
@@ -285,7 +285,8 @@ class JCLComponent(Component, object):
|
|||||||
|
|
||||||
def apply_registered_behavior(self, handlers, stanza,
|
def apply_registered_behavior(self, handlers, stanza,
|
||||||
apply_filter_func=None,
|
apply_filter_func=None,
|
||||||
apply_handle_func=None):
|
apply_handle_func=None,
|
||||||
|
send_result=True):
|
||||||
"""Execute handler if their filter method does not return None"""
|
"""Execute handler if their filter method does not return None"""
|
||||||
result = []
|
result = []
|
||||||
lang_class = self.lang.get_lang_class_from_node(stanza.get_node())
|
lang_class = self.lang.get_lang_class_from_node(stanza.get_node())
|
||||||
@@ -322,7 +323,8 @@ class JCLComponent(Component, object):
|
|||||||
stanza_type="error",
|
stanza_type="error",
|
||||||
subject=lang_class.error_subject,
|
subject=lang_class.error_subject,
|
||||||
body=lang_class.error_body % (e.message))]
|
body=lang_class.error_body % (e.message))]
|
||||||
self.send_stanzas(result)
|
if send_result:
|
||||||
|
self.send_stanzas(result)
|
||||||
return result
|
return result
|
||||||
|
|
||||||
def handle_get_gateway(self, info_query):
|
def handle_get_gateway(self, info_query):
|
||||||
@@ -365,8 +367,12 @@ class JCLComponent(Component, object):
|
|||||||
lambda filter_func, stanza, lang_class: \
|
lambda filter_func, stanza, lang_class: \
|
||||||
filter_func(stanza, lang_class, node),
|
filter_func(stanza, lang_class, node),
|
||||||
lambda handle_func, stanza, lang_class, data, result: \
|
lambda handle_func, stanza, lang_class, data, result: \
|
||||||
handle_func(stanza, lang_class, node, result, data))
|
handle_func(stanza, lang_class, node, result, data),
|
||||||
return result
|
send_result=False)
|
||||||
|
if len(result) > 0:
|
||||||
|
return result[0]
|
||||||
|
else:
|
||||||
|
return None
|
||||||
|
|
||||||
def disco_get_items(self, node, info_query):
|
def disco_get_items(self, node, info_query):
|
||||||
"""
|
"""
|
||||||
@@ -378,8 +384,12 @@ class JCLComponent(Component, object):
|
|||||||
lambda filter_func, stanza, lang_class: \
|
lambda filter_func, stanza, lang_class: \
|
||||||
filter_func(stanza, lang_class, node),
|
filter_func(stanza, lang_class, node),
|
||||||
lambda handle_func, stanza, lang_class, data, result: \
|
lambda handle_func, stanza, lang_class, data, result: \
|
||||||
handle_func(stanza, lang_class, node, result, data))
|
handle_func(stanza, lang_class, node, result, data),
|
||||||
return result
|
send_result=False)
|
||||||
|
if len(result) > 0:
|
||||||
|
return result[0]
|
||||||
|
else:
|
||||||
|
return None
|
||||||
|
|
||||||
def handle_get_version(self, info_query):
|
def handle_get_version(self, info_query):
|
||||||
"""Get Version handler
|
"""Get Version handler
|
||||||
|
|||||||
@@ -505,9 +505,8 @@ class JCLComponent_TestCase(unittest.TestCase):
|
|||||||
info_query = Iq(stanza_type="get",
|
info_query = Iq(stanza_type="get",
|
||||||
from_jid="user1@test.com",
|
from_jid="user1@test.com",
|
||||||
to_jid="jcl.test.com")
|
to_jid="jcl.test.com")
|
||||||
disco_infos = self.comp.disco_get_info(None, info_query)
|
disco_info = self.comp.disco_get_info(None, info_query)
|
||||||
self.assertEquals(len(disco_infos), 1)
|
self.assertEquals(len(self.comp.stream.sent), 0)
|
||||||
disco_info = disco_infos[0]
|
|
||||||
self.assertEquals(disco_info.get_identities()[0].get_name(), self.comp.name)
|
self.assertEquals(disco_info.get_identities()[0].get_name(), self.comp.name)
|
||||||
self.assertTrue(disco_info.has_feature("jabber:iq:version"))
|
self.assertTrue(disco_info.has_feature("jabber:iq:version"))
|
||||||
self.assertTrue(disco_info.has_feature("jabber:iq:register"))
|
self.assertTrue(disco_info.has_feature("jabber:iq:register"))
|
||||||
@@ -519,9 +518,8 @@ class JCLComponent_TestCase(unittest.TestCase):
|
|||||||
info_query = Iq(stanza_type="get",
|
info_query = Iq(stanza_type="get",
|
||||||
from_jid="user1@test.com",
|
from_jid="user1@test.com",
|
||||||
to_jid="jcl.test.com")
|
to_jid="jcl.test.com")
|
||||||
disco_infos = self.comp.disco_get_info(None, info_query)
|
disco_info = self.comp.disco_get_info(None, info_query)
|
||||||
self.assertEquals(len(disco_infos), 1)
|
self.assertEquals(len(self.comp.stream.sent), 0)
|
||||||
disco_info = disco_infos[0]
|
|
||||||
self.assertEquals(disco_info.get_identities()[0].get_name(),
|
self.assertEquals(disco_info.get_identities()[0].get_name(),
|
||||||
self.comp.name)
|
self.comp.name)
|
||||||
self.assertTrue(disco_info.has_feature("jabber:iq:version"))
|
self.assertTrue(disco_info.has_feature("jabber:iq:version"))
|
||||||
@@ -533,9 +531,8 @@ class JCLComponent_TestCase(unittest.TestCase):
|
|||||||
info_query = Iq(stanza_type="get",
|
info_query = Iq(stanza_type="get",
|
||||||
from_jid="user1@test.com",
|
from_jid="user1@test.com",
|
||||||
to_jid="node_test@jcl.test.com")
|
to_jid="node_test@jcl.test.com")
|
||||||
disco_infos = self.comp.disco_get_info("node_test", info_query)
|
disco_info = self.comp.disco_get_info("node_test", info_query)
|
||||||
self.assertEquals(len(disco_infos), 1)
|
self.assertEquals(len(self.comp.stream.sent), 0)
|
||||||
disco_info = disco_infos[0]
|
|
||||||
self.assertTrue(disco_info.has_feature("jabber:iq:register"))
|
self.assertTrue(disco_info.has_feature("jabber:iq:register"))
|
||||||
|
|
||||||
def test_disco_get_info_long_node(self):
|
def test_disco_get_info_long_node(self):
|
||||||
@@ -545,10 +542,9 @@ class JCLComponent_TestCase(unittest.TestCase):
|
|||||||
info_query = Iq(stanza_type="get",
|
info_query = Iq(stanza_type="get",
|
||||||
from_jid="user1@test.com",
|
from_jid="user1@test.com",
|
||||||
to_jid="node_test@jcl.test.com/node_type")
|
to_jid="node_test@jcl.test.com/node_type")
|
||||||
disco_infos = self.comp.disco_get_info("node_type/node_test",
|
disco_info = self.comp.disco_get_info("node_type/node_test",
|
||||||
info_query)
|
info_query)
|
||||||
self.assertEquals(len(disco_infos), 1)
|
self.assertEquals(len(self.comp.stream.sent), 0)
|
||||||
disco_info = disco_infos[0]
|
|
||||||
self.assertTrue(disco_info.has_feature("jabber:iq:register"))
|
self.assertTrue(disco_info.has_feature("jabber:iq:register"))
|
||||||
|
|
||||||
def test_disco_get_info_root_unknown_node(self):
|
def test_disco_get_info_root_unknown_node(self):
|
||||||
@@ -556,7 +552,7 @@ class JCLComponent_TestCase(unittest.TestCase):
|
|||||||
from_jid="user1@test.com",
|
from_jid="user1@test.com",
|
||||||
to_jid="jcl.test.com")
|
to_jid="jcl.test.com")
|
||||||
disco_info = self.comp.disco_get_info("unknown", info_query)
|
disco_info = self.comp.disco_get_info("unknown", info_query)
|
||||||
self.assertEquals(disco_info, [])
|
self.assertEquals(disco_info, None)
|
||||||
|
|
||||||
def test_disco_get_info_command_list(self):
|
def test_disco_get_info_command_list(self):
|
||||||
self.comp.stream = MockStream()
|
self.comp.stream = MockStream()
|
||||||
@@ -564,9 +560,8 @@ class JCLComponent_TestCase(unittest.TestCase):
|
|||||||
info_query = Iq(stanza_type="get",
|
info_query = Iq(stanza_type="get",
|
||||||
from_jid="user1@test.com",
|
from_jid="user1@test.com",
|
||||||
to_jid="jcl.test.com")
|
to_jid="jcl.test.com")
|
||||||
disco_infos = self.comp.disco_get_info("list", info_query)
|
disco_info = self.comp.disco_get_info("list", info_query)
|
||||||
self.assertEquals(len(disco_infos), 1)
|
self.assertEquals(len(self.comp.stream.sent), 0)
|
||||||
disco_info = disco_infos[0]
|
|
||||||
self.assertTrue(disco_info.has_feature("http://jabber.org/protocol/commands"))
|
self.assertTrue(disco_info.has_feature("http://jabber.org/protocol/commands"))
|
||||||
self.assertEquals(len(disco_info.get_identities()), 1)
|
self.assertEquals(len(disco_info.get_identities()), 1)
|
||||||
self.assertEquals(disco_info.get_identities()[0].get_category(),
|
self.assertEquals(disco_info.get_identities()[0].get_category(),
|
||||||
@@ -592,8 +587,8 @@ class JCLComponent_TestCase(unittest.TestCase):
|
|||||||
from_jid = "user1@test.com", \
|
from_jid = "user1@test.com", \
|
||||||
to_jid = "jcl.test.com")
|
to_jid = "jcl.test.com")
|
||||||
disco_items = self.comp.disco_get_items(None, info_query)
|
disco_items = self.comp.disco_get_items(None, info_query)
|
||||||
self.assertEquals(len(disco_items[0].get_items()), 1)
|
self.assertEquals(len(disco_items.get_items()), 1)
|
||||||
disco_item = disco_items[0].get_items()[0]
|
disco_item = disco_items.get_items()[0]
|
||||||
self.assertEquals(disco_item.get_jid(), account1.jid)
|
self.assertEquals(disco_item.get_jid(), account1.jid)
|
||||||
self.assertEquals(disco_item.get_node(), account1.name)
|
self.assertEquals(disco_item.get_node(), account1.name)
|
||||||
self.assertEquals(disco_item.get_name(), account1.long_name)
|
self.assertEquals(disco_item.get_name(), account1.long_name)
|
||||||
@@ -609,7 +604,7 @@ class JCLComponent_TestCase(unittest.TestCase):
|
|||||||
from_jid="user1@test.com",
|
from_jid="user1@test.com",
|
||||||
to_jid="jcl.test.com")
|
to_jid="jcl.test.com")
|
||||||
disco_items = self.comp.disco_get_items("unknown", info_query)
|
disco_items = self.comp.disco_get_items("unknown", info_query)
|
||||||
self.assertEquals(disco_items, [])
|
self.assertEquals(disco_items, None)
|
||||||
|
|
||||||
def test_disco_get_items_unknown_node_multiple_account_types(self):
|
def test_disco_get_items_unknown_node_multiple_account_types(self):
|
||||||
self.comp.account_manager.account_classes = (ExampleAccount, Example2Account)
|
self.comp.account_manager.account_classes = (ExampleAccount, Example2Account)
|
||||||
@@ -626,7 +621,7 @@ class JCLComponent_TestCase(unittest.TestCase):
|
|||||||
to_jid="jcl.test.com")
|
to_jid="jcl.test.com")
|
||||||
self.comp.account_manager.has_multiple_account_type = True
|
self.comp.account_manager.has_multiple_account_type = True
|
||||||
disco_items = self.comp.disco_get_items("unknown", info_query)
|
disco_items = self.comp.disco_get_items("unknown", info_query)
|
||||||
self.assertEquals(disco_items, [])
|
self.assertEquals(disco_items, None)
|
||||||
|
|
||||||
def test_disco_get_items_1type_with_node(self):
|
def test_disco_get_items_1type_with_node(self):
|
||||||
"""get_items on an account. Must return nothing"""
|
"""get_items on an account. Must return nothing"""
|
||||||
@@ -639,7 +634,7 @@ class JCLComponent_TestCase(unittest.TestCase):
|
|||||||
from_jid="user1@test.com",
|
from_jid="user1@test.com",
|
||||||
to_jid="account1@jcl.test.com")
|
to_jid="account1@jcl.test.com")
|
||||||
disco_items = self.comp.disco_get_items("account1", info_query)
|
disco_items = self.comp.disco_get_items("account1", info_query)
|
||||||
self.assertEquals(disco_items, [])
|
self.assertEquals(disco_items, None)
|
||||||
|
|
||||||
def test_disco_get_items_2types_no_node(self):
|
def test_disco_get_items_2types_no_node(self):
|
||||||
"""get_items on main entity. Must account types"""
|
"""get_items on main entity. Must account types"""
|
||||||
@@ -659,14 +654,14 @@ class JCLComponent_TestCase(unittest.TestCase):
|
|||||||
from_jid="user1@test.com",
|
from_jid="user1@test.com",
|
||||||
to_jid="jcl.test.com")
|
to_jid="jcl.test.com")
|
||||||
disco_items = self.comp.disco_get_items(None, info_query)
|
disco_items = self.comp.disco_get_items(None, info_query)
|
||||||
self.assertEquals(len(disco_items[0].get_items()), 2)
|
self.assertEquals(len(disco_items.get_items()), 2)
|
||||||
disco_item = disco_items[0].get_items()[0]
|
disco_item = disco_items.get_items()[0]
|
||||||
self.assertEquals(unicode(disco_item.get_jid()),
|
self.assertEquals(unicode(disco_item.get_jid()),
|
||||||
unicode(self.comp.jid) + "/Example")
|
unicode(self.comp.jid) + "/Example")
|
||||||
self.assertEquals(disco_item.get_node(), "Example")
|
self.assertEquals(disco_item.get_node(), "Example")
|
||||||
self.assertEquals(disco_item.get_name(),
|
self.assertEquals(disco_item.get_name(),
|
||||||
LangExample.en.type_example_name)
|
LangExample.en.type_example_name)
|
||||||
disco_item = disco_items[0].get_items()[1]
|
disco_item = disco_items.get_items()[1]
|
||||||
self.assertEquals(unicode(disco_item.get_jid()),
|
self.assertEquals(unicode(disco_item.get_jid()),
|
||||||
unicode(self.comp.jid) + "/Example2")
|
unicode(self.comp.jid) + "/Example2")
|
||||||
self.assertEquals(disco_item.get_node(), "Example2")
|
self.assertEquals(disco_item.get_node(), "Example2")
|
||||||
@@ -699,8 +694,8 @@ class JCLComponent_TestCase(unittest.TestCase):
|
|||||||
from_jid="user1@test.com",
|
from_jid="user1@test.com",
|
||||||
to_jid="jcl.test.com/Example")
|
to_jid="jcl.test.com/Example")
|
||||||
disco_items = self.comp.disco_get_items("Example", info_query)
|
disco_items = self.comp.disco_get_items("Example", info_query)
|
||||||
self.assertEquals(len(disco_items[0].get_items()), 1)
|
self.assertEquals(len(disco_items.get_items()), 1)
|
||||||
disco_item = disco_items[0].get_items()[0]
|
disco_item = disco_items.get_items()[0]
|
||||||
self.assertEquals(unicode(disco_item.get_jid()), unicode(account11.jid) + "/Example")
|
self.assertEquals(unicode(disco_item.get_jid()), unicode(account11.jid) + "/Example")
|
||||||
self.assertEquals(disco_item.get_node(), "Example/" + account11.name)
|
self.assertEquals(disco_item.get_node(), "Example/" + account11.name)
|
||||||
self.assertEquals(disco_item.get_name(), account11.long_name)
|
self.assertEquals(disco_item.get_name(), account11.long_name)
|
||||||
@@ -729,8 +724,8 @@ class JCLComponent_TestCase(unittest.TestCase):
|
|||||||
from_jid="user2@test.com",
|
from_jid="user2@test.com",
|
||||||
to_jid="jcl.test.com/Example2")
|
to_jid="jcl.test.com/Example2")
|
||||||
disco_items = self.comp.disco_get_items("Example2", info_query)
|
disco_items = self.comp.disco_get_items("Example2", info_query)
|
||||||
self.assertEquals(len(disco_items[0].get_items()), 1)
|
self.assertEquals(len(disco_items.get_items()), 1)
|
||||||
disco_item = disco_items[0].get_items()[0]
|
disco_item = disco_items.get_items()[0]
|
||||||
self.assertEquals(unicode(disco_item.get_jid()), unicode(account22.jid) + "/Example2")
|
self.assertEquals(unicode(disco_item.get_jid()), unicode(account22.jid) + "/Example2")
|
||||||
self.assertEquals(disco_item.get_node(), "Example2/" + account22.name)
|
self.assertEquals(disco_item.get_node(), "Example2/" + account22.name)
|
||||||
self.assertEquals(disco_item.get_name(), account22.long_name)
|
self.assertEquals(disco_item.get_name(), account22.long_name)
|
||||||
@@ -747,7 +742,7 @@ class JCLComponent_TestCase(unittest.TestCase):
|
|||||||
from_jid="user1@test.com",
|
from_jid="user1@test.com",
|
||||||
to_jid="account1@jcl.test.com/Example")
|
to_jid="account1@jcl.test.com/Example")
|
||||||
disco_items = self.comp.disco_get_items("Example/account1", info_query)
|
disco_items = self.comp.disco_get_items("Example/account1", info_query)
|
||||||
self.assertEquals(disco_items, [])
|
self.assertEquals(disco_items, None)
|
||||||
|
|
||||||
def test_disco_get_items_2types_with_long_node2(self):
|
def test_disco_get_items_2types_with_long_node2(self):
|
||||||
"""get_items on a second type account. Must return nothing"""
|
"""get_items on a second type account. Must return nothing"""
|
||||||
@@ -761,7 +756,7 @@ class JCLComponent_TestCase(unittest.TestCase):
|
|||||||
from_jid="user1@test.com",
|
from_jid="user1@test.com",
|
||||||
to_jid="account1@jcl.test.com/Example2")
|
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, [])
|
self.assertEquals(disco_items, None)
|
||||||
|
|
||||||
def test_disco_get_items_list_commands(self):
|
def test_disco_get_items_list_commands(self):
|
||||||
self.comp.stream = MockStream()
|
self.comp.stream = MockStream()
|
||||||
@@ -771,8 +766,8 @@ class JCLComponent_TestCase(unittest.TestCase):
|
|||||||
to_jid="jcl.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)
|
info_query)
|
||||||
self.assertEquals(len(disco_items[0].get_items()), 35)
|
self.assertEquals(len(disco_items.get_items()), 35)
|
||||||
item = disco_items[0].get_items()[0]
|
item = disco_items.get_items()[0]
|
||||||
self.assertEquals(item.get_node(), "list")
|
self.assertEquals(item.get_node(), "list")
|
||||||
self.assertEquals(item.get_name(), Lang.en.command_list)
|
self.assertEquals(item.get_name(), Lang.en.command_list)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user