Add some tests
darcs-hash:20071212180833-86b55-6f2c7f020b88b577501cfd9d5c4f121142789d1b.gz
This commit is contained in:
45
run_tests.py
45
run_tests.py
@@ -41,6 +41,13 @@ def suite():
|
|||||||
return jcl.tests.suite()
|
return jcl.tests.suite()
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
class MyTestProgram(unittest.TestProgram):
|
||||||
|
def runTests(self):
|
||||||
|
"""run tests but do not exit after"""
|
||||||
|
if self.testRunner is None:
|
||||||
|
self.testRunner = unittest.TextTestRunner(verbosity=self.verbosity)
|
||||||
|
self.testRunner.run(self.test)
|
||||||
|
|
||||||
logger = logging.getLogger()
|
logger = logging.getLogger()
|
||||||
logger.addHandler(logging.StreamHandler())
|
logger.addHandler(logging.StreamHandler())
|
||||||
logger.setLevel(logging.CRITICAL)
|
logger.setLevel(logging.CRITICAL)
|
||||||
@@ -50,27 +57,19 @@ if __name__ == '__main__':
|
|||||||
testoob.main(defaultTest='suite')
|
testoob.main(defaultTest='suite')
|
||||||
except ImportError:
|
except ImportError:
|
||||||
print "Falling back to standard unittest"
|
print "Falling back to standard unittest"
|
||||||
unittest.main(defaultTest='suite')
|
MyTestProgram(defaultTest='suite')
|
||||||
|
|
||||||
coverage.stop()
|
coverage.report(["src/jcl/__init__.py",
|
||||||
coverage.analysis(jcl.jabber)
|
"src/jcl/lang.py",
|
||||||
coverage.analysis(jcl.jabber.component)
|
"src/jcl/runner.py",
|
||||||
coverage.analysis(jcl.jabber.feeder)
|
"src/jcl/error.py",
|
||||||
coverage.analysis(jcl.jabber.message)
|
"src/jcl/jabber/__init__.py",
|
||||||
coverage.analysis(jcl.jabber.presence)
|
"src/jcl/jabber/component.py",
|
||||||
coverage.analysis(jcl.jabber.disco)
|
"src/jcl/jabber/command.py",
|
||||||
coverage.analysis(jcl.lang)
|
"src/jcl/jabber/feeder.py",
|
||||||
coverage.analysis(jcl.runner)
|
"src/jcl/jabber/message.py",
|
||||||
coverage.analysis(jcl.model)
|
"src/jcl/jabber/presence.py",
|
||||||
coverage.analysis(jcl.model.account)
|
"src/jcl/jabber/disco.py",
|
||||||
|
"src/jcl/jabber/register.py",
|
||||||
coverage.report([jcl.jabber,
|
"src/jcl/model/__init__.py",
|
||||||
jcl.jabber.component,
|
"src/jcl/model/account.py"])
|
||||||
jcl.jabber.feeder,
|
|
||||||
jcl.jabber.message,
|
|
||||||
jcl.jabber.presence,
|
|
||||||
jcl.jabber.disco,
|
|
||||||
jcl.lang,
|
|
||||||
jcl.runner,
|
|
||||||
jcl.model,
|
|
||||||
jcl.model.account])
|
|
||||||
|
|||||||
@@ -282,8 +282,6 @@ class JCLCommandManager(CommandManager):
|
|||||||
(True, root_node_re)
|
(True, root_node_re)
|
||||||
self.commands["http://jabber.org/protocol/admin#end-user-session"] = \
|
self.commands["http://jabber.org/protocol/admin#end-user-session"] = \
|
||||||
(True, root_node_re)
|
(True, root_node_re)
|
||||||
#self.commands["http://jabber.org/protocol/admin#get-user-password"] = True
|
|
||||||
#self.commands["http://jabber.org/protocol/admin#change-user-password"] = True
|
|
||||||
self.commands["http://jabber.org/protocol/admin#get-user-roster"] = \
|
self.commands["http://jabber.org/protocol/admin#get-user-roster"] = \
|
||||||
(True, root_node_re)
|
(True, root_node_re)
|
||||||
self.commands["http://jabber.org/protocol/admin#get-user-lastlogin"] = \
|
self.commands["http://jabber.org/protocol/admin#get-user-lastlogin"] = \
|
||||||
@@ -320,6 +318,9 @@ class JCLCommandManager(CommandManager):
|
|||||||
(True, root_node_re)
|
(True, root_node_re)
|
||||||
self.commands["jcl#get-last-error"] = (False, account_node_re)
|
self.commands["jcl#get-last-error"] = (False, account_node_re)
|
||||||
|
|
||||||
|
#self.commands["http://jabber.org/protocol/admin#get-user-password"] = True
|
||||||
|
#self.commands["http://jabber.org/protocol/admin#change-user-password"] = True
|
||||||
|
|
||||||
def get_name_and_jid(self, mixed_name_and_jid):
|
def get_name_and_jid(self, mixed_name_and_jid):
|
||||||
return mixed_name_and_jid.split("/", 1)[:2]
|
return mixed_name_and_jid.split("/", 1)[:2]
|
||||||
|
|
||||||
@@ -363,7 +364,7 @@ class JCLCommandManager(CommandManager):
|
|||||||
label = _account.name + " (" + account_type \
|
label = _account.name + " (" + account_type \
|
||||||
+ ") (" + user_jid + ")"
|
+ ") (" + user_jid + ")"
|
||||||
else:
|
else:
|
||||||
label = _account.name+ " (" + account_type \
|
label = _account.name + " (" + account_type \
|
||||||
+ ")"
|
+ ")"
|
||||||
field.add_option(label=label,
|
field.add_option(label=label,
|
||||||
values=[_account.name + "/" + user_jid])
|
values=[_account.name + "/" + user_jid])
|
||||||
|
|||||||
@@ -3,10 +3,34 @@ __revision__ = ""
|
|||||||
|
|
||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
|
import jcl.jabber as jabber
|
||||||
|
|
||||||
from jcl.jabber.tests import component, feeder, command, message, presence
|
from jcl.jabber.tests import component, feeder, command, message, presence
|
||||||
|
|
||||||
|
class HandlerType1:
|
||||||
|
pass
|
||||||
|
|
||||||
|
class HandlerType2:
|
||||||
|
pass
|
||||||
|
|
||||||
|
class HandlerType3:
|
||||||
|
pass
|
||||||
|
|
||||||
|
class JabberModule_TestCase(unittest.TestCase):
|
||||||
|
def test_replace_handlers(self):
|
||||||
|
handlers = [[HandlerType1(), HandlerType2(), HandlerType1()],
|
||||||
|
[HandlerType2(), HandlerType1(), HandlerType2()]]
|
||||||
|
jabber.replace_handlers(handlers, HandlerType2, HandlerType3())
|
||||||
|
self.assertEquals(handlers[0][0].__class__.__name__, "HandlerType1")
|
||||||
|
self.assertEquals(handlers[0][1].__class__.__name__, "HandlerType3")
|
||||||
|
self.assertEquals(handlers[0][2].__class__.__name__, "HandlerType1")
|
||||||
|
self.assertEquals(handlers[1][0].__class__.__name__, "HandlerType3")
|
||||||
|
self.assertEquals(handlers[1][1].__class__.__name__, "HandlerType1")
|
||||||
|
self.assertEquals(handlers[1][2].__class__.__name__, "HandlerType3")
|
||||||
|
|
||||||
def suite():
|
def suite():
|
||||||
test_suite = unittest.TestSuite()
|
test_suite = unittest.TestSuite()
|
||||||
|
test_suite.addTest(unittest.makeSuite(JabberModule_TestCase, 'test'))
|
||||||
test_suite.addTest(component.suite())
|
test_suite.addTest(component.suite())
|
||||||
test_suite.addTest(feeder.suite())
|
test_suite.addTest(feeder.suite())
|
||||||
test_suite.addTest(command.suite())
|
test_suite.addTest(command.suite())
|
||||||
|
|||||||
@@ -55,6 +55,7 @@ class FieldNoType_TestCase(unittest.TestCase):
|
|||||||
|
|
||||||
class MockComponent(JCLComponent):
|
class MockComponent(JCLComponent):
|
||||||
jid = JID("jcl.test.com")
|
jid = JID("jcl.test.com")
|
||||||
|
lang = Lang()
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
pass
|
pass
|
||||||
@@ -75,14 +76,21 @@ class CommandManager_TestCase(unittest.TestCase):
|
|||||||
self.assertEquals(command_name, "test_command")
|
self.assertEquals(command_name, "test_command")
|
||||||
|
|
||||||
def test_list_root_commands(self):
|
def test_list_root_commands(self):
|
||||||
command.command_manager.commands["command1"] = (True, command.root_node_re)
|
command.command_manager.commands["command1"] = (True,
|
||||||
command.command_manager.commands["command2"] = (False, command.root_node_re)
|
command.root_node_re)
|
||||||
command.command_manager.commands["command11"] = (True, command.account_type_node_re)
|
command.command_manager.commands["command2"] = (False,
|
||||||
command.command_manager.commands["command12"] = (False, command.account_type_node_re)
|
command.root_node_re)
|
||||||
command.command_manager.commands["command21"] = (True, command.account_node_re)
|
command.command_manager.commands["command11"] = (\
|
||||||
command.command_manager.commands["command22"] = (False, command.account_node_re)
|
True, command.account_type_node_re)
|
||||||
|
command.command_manager.commands["command12"] = (\
|
||||||
|
False, command.account_type_node_re)
|
||||||
|
command.command_manager.commands["command21"] = (\
|
||||||
|
True, command.account_node_re)
|
||||||
|
command.command_manager.commands["command22"] = (\
|
||||||
|
False, command.account_node_re)
|
||||||
command.command_manager.component = MockComponent()
|
command.command_manager.component = MockComponent()
|
||||||
disco_items = command.command_manager.list_commands(jid=JID("user@test.com"),
|
disco_items = command.command_manager.list_commands(\
|
||||||
|
jid=JID("user@test.com"),
|
||||||
to_jid=JID("jcl.test.com"),
|
to_jid=JID("jcl.test.com"),
|
||||||
disco_items=DiscoItems(),
|
disco_items=DiscoItems(),
|
||||||
lang_class=Lang.en)
|
lang_class=Lang.en)
|
||||||
@@ -92,14 +100,21 @@ class CommandManager_TestCase(unittest.TestCase):
|
|||||||
self.assertEquals(items[0].get_name(), "command2")
|
self.assertEquals(items[0].get_name(), "command2")
|
||||||
|
|
||||||
def test_list_accounttype_commands(self):
|
def test_list_accounttype_commands(self):
|
||||||
command.command_manager.commands["command1"] = (True, command.root_node_re)
|
command.command_manager.commands["command1"] = (True,
|
||||||
command.command_manager.commands["command2"] = (False, command.root_node_re)
|
command.root_node_re)
|
||||||
command.command_manager.commands["command11"] = (True, command.account_type_node_re)
|
command.command_manager.commands["command2"] = (False,
|
||||||
command.command_manager.commands["command12"] = (False, command.account_type_node_re)
|
command.root_node_re)
|
||||||
command.command_manager.commands["command21"] = (True, command.account_node_re)
|
command.command_manager.commands["command11"] = (\
|
||||||
command.command_manager.commands["command22"] = (False, command.account_node_re)
|
True, command.account_type_node_re)
|
||||||
|
command.command_manager.commands["command12"] = (\
|
||||||
|
False, command.account_type_node_re)
|
||||||
|
command.command_manager.commands["command21"] = (\
|
||||||
|
True, command.account_node_re)
|
||||||
|
command.command_manager.commands["command22"] = (\
|
||||||
|
False, command.account_node_re)
|
||||||
command.command_manager.component = MockComponent()
|
command.command_manager.component = MockComponent()
|
||||||
disco_items = command.command_manager.list_commands(jid=JID("user@test.com"),
|
disco_items = command.command_manager.list_commands(\
|
||||||
|
jid=JID("user@test.com"),
|
||||||
to_jid=JID("jcl.test.com/Example"),
|
to_jid=JID("jcl.test.com/Example"),
|
||||||
disco_items=DiscoItems(),
|
disco_items=DiscoItems(),
|
||||||
lang_class=Lang.en)
|
lang_class=Lang.en)
|
||||||
@@ -109,14 +124,21 @@ class CommandManager_TestCase(unittest.TestCase):
|
|||||||
self.assertEquals(items[0].get_name(), "command12")
|
self.assertEquals(items[0].get_name(), "command12")
|
||||||
|
|
||||||
def test_list_account_commands(self):
|
def test_list_account_commands(self):
|
||||||
command.command_manager.commands["command1"] = (True, command.root_node_re)
|
command.command_manager.commands["command1"] = (True,
|
||||||
command.command_manager.commands["command2"] = (False, command.root_node_re)
|
command.root_node_re)
|
||||||
command.command_manager.commands["command11"] = (True, command.account_type_node_re)
|
command.command_manager.commands["command2"] = (False,
|
||||||
command.command_manager.commands["command12"] = (False, command.account_type_node_re)
|
command.root_node_re)
|
||||||
command.command_manager.commands["command21"] = (True, command.account_node_re)
|
command.command_manager.commands["command11"] = (\
|
||||||
command.command_manager.commands["command22"] = (False, command.account_node_re)
|
True, command.account_type_node_re)
|
||||||
|
command.command_manager.commands["command12"] = (\
|
||||||
|
False, command.account_type_node_re)
|
||||||
|
command.command_manager.commands["command21"] = (\
|
||||||
|
True, command.account_node_re)
|
||||||
|
command.command_manager.commands["command22"] = (\
|
||||||
|
False, command.account_node_re)
|
||||||
command.command_manager.component = MockComponent()
|
command.command_manager.component = MockComponent()
|
||||||
disco_items = command.command_manager.list_commands(jid=JID("user@test.com"),
|
disco_items = command.command_manager.list_commands(\
|
||||||
|
jid=JID("user@test.com"),
|
||||||
to_jid=JID("account@jcl.test.com/Example"),
|
to_jid=JID("account@jcl.test.com/Example"),
|
||||||
disco_items=DiscoItems(),
|
disco_items=DiscoItems(),
|
||||||
lang_class=Lang.en)
|
lang_class=Lang.en)
|
||||||
@@ -126,10 +148,13 @@ class CommandManager_TestCase(unittest.TestCase):
|
|||||||
self.assertEquals(items[0].get_name(), "command22")
|
self.assertEquals(items[0].get_name(), "command22")
|
||||||
|
|
||||||
def test_list_commands_as_admin(self):
|
def test_list_commands_as_admin(self):
|
||||||
command.command_manager.commands["command1"] = (True, command.root_node_re)
|
command.command_manager.commands["command1"] = (True,
|
||||||
command.command_manager.commands["command2"] = (False, command.root_node_re)
|
command.root_node_re)
|
||||||
|
command.command_manager.commands["command2"] = (False,
|
||||||
|
command.root_node_re)
|
||||||
command.command_manager.component = MockComponent()
|
command.command_manager.component = MockComponent()
|
||||||
disco_items = command.command_manager.list_commands(jid=JID("admin@test.com"),
|
disco_items = command.command_manager.list_commands(\
|
||||||
|
jid=JID("admin@test.com"),
|
||||||
to_jid=JID("jcl.test.com"),
|
to_jid=JID("jcl.test.com"),
|
||||||
disco_items=DiscoItems(),
|
disco_items=DiscoItems(),
|
||||||
lang_class=Lang.en)
|
lang_class=Lang.en)
|
||||||
@@ -141,10 +166,13 @@ class CommandManager_TestCase(unittest.TestCase):
|
|||||||
self.assertEquals(items[1].get_name(), "command2")
|
self.assertEquals(items[1].get_name(), "command2")
|
||||||
|
|
||||||
def test_list_commands_as_admin_fulljid(self):
|
def test_list_commands_as_admin_fulljid(self):
|
||||||
command.command_manager.commands["command1"] = (True, command.root_node_re)
|
command.command_manager.commands["command1"] = (True,
|
||||||
command.command_manager.commands["command2"] = (False, command.root_node_re)
|
command.root_node_re)
|
||||||
|
command.command_manager.commands["command2"] = (False,
|
||||||
|
command.root_node_re)
|
||||||
command.command_manager.component = MockComponent()
|
command.command_manager.component = MockComponent()
|
||||||
disco_items = command.command_manager.list_commands(jid=JID("admin@test.com/full"),
|
disco_items = command.command_manager.list_commands(\
|
||||||
|
jid=JID("admin@test.com/full"),
|
||||||
to_jid=JID("jcl.test.com"),
|
to_jid=JID("jcl.test.com"),
|
||||||
disco_items=DiscoItems(),
|
disco_items=DiscoItems(),
|
||||||
lang_class=Lang.en)
|
lang_class=Lang.en)
|
||||||
@@ -156,7 +184,8 @@ class CommandManager_TestCase(unittest.TestCase):
|
|||||||
self.assertEquals(items[1].get_name(), "command2")
|
self.assertEquals(items[1].get_name(), "command2")
|
||||||
|
|
||||||
def test_apply_admin_command_action_as_admin(self):
|
def test_apply_admin_command_action_as_admin(self):
|
||||||
command.command_manager.commands["command1"] = (True, command.root_node_re)
|
command.command_manager.commands["command1"] = (True,
|
||||||
|
command.root_node_re)
|
||||||
command.command_manager.apply_execute_command = \
|
command.command_manager.apply_execute_command = \
|
||||||
lambda iq, command_name: []
|
lambda iq, command_name: []
|
||||||
command.command_manager.component = MockComponent()
|
command.command_manager.component = MockComponent()
|
||||||
@@ -169,7 +198,8 @@ class CommandManager_TestCase(unittest.TestCase):
|
|||||||
self.assertEquals(result, [])
|
self.assertEquals(result, [])
|
||||||
|
|
||||||
def test_apply_admin_command_action_as_admin_fulljid(self):
|
def test_apply_admin_command_action_as_admin_fulljid(self):
|
||||||
command.command_manager.commands["command1"] = (True, command.root_node_re)
|
command.command_manager.commands["command1"] = (True,
|
||||||
|
command.root_node_re)
|
||||||
command.command_manager.apply_execute_command = \
|
command.command_manager.apply_execute_command = \
|
||||||
lambda iq, command_name: []
|
lambda iq, command_name: []
|
||||||
command.command_manager.component = MockComponent()
|
command.command_manager.component = MockComponent()
|
||||||
@@ -182,7 +212,8 @@ class CommandManager_TestCase(unittest.TestCase):
|
|||||||
self.assertEquals(result, [])
|
self.assertEquals(result, [])
|
||||||
|
|
||||||
def test_apply_admin_command_action_as_user(self):
|
def test_apply_admin_command_action_as_user(self):
|
||||||
command.command_manager.commands["command1"] = (True, command.root_node_re)
|
command.command_manager.commands["command1"] = (True,
|
||||||
|
command.root_node_re)
|
||||||
command.command_manager.apply_execute_command = \
|
command.command_manager.apply_execute_command = \
|
||||||
lambda iq, command_name: []
|
lambda iq, command_name: []
|
||||||
command.command_manager.component = MockComponent()
|
command.command_manager.component = MockComponent()
|
||||||
@@ -199,7 +230,8 @@ class CommandManager_TestCase(unittest.TestCase):
|
|||||||
self.assertEquals(result[0].xmlnode.children.children.name, "forbidden")
|
self.assertEquals(result[0].xmlnode.children.children.name, "forbidden")
|
||||||
|
|
||||||
def test_apply_non_admin_command_action_as_admin(self):
|
def test_apply_non_admin_command_action_as_admin(self):
|
||||||
command.command_manager.commands["command1"] = (False, command.root_node_re)
|
command.command_manager.commands["command1"] = (False,
|
||||||
|
command.root_node_re)
|
||||||
command.command_manager.apply_execute_command = \
|
command.command_manager.apply_execute_command = \
|
||||||
lambda iq, command_name: []
|
lambda iq, command_name: []
|
||||||
command.command_manager.component = MockComponent()
|
command.command_manager.component = MockComponent()
|
||||||
@@ -212,7 +244,8 @@ class CommandManager_TestCase(unittest.TestCase):
|
|||||||
self.assertEquals(result, [])
|
self.assertEquals(result, [])
|
||||||
|
|
||||||
def test_apply_non_admin_command_action_as_user(self):
|
def test_apply_non_admin_command_action_as_user(self):
|
||||||
command.command_manager.commands["command1"] = (False, command.root_node_re)
|
command.command_manager.commands["command1"] = (False,
|
||||||
|
command.root_node_re)
|
||||||
command.command_manager.apply_execute_command = \
|
command.command_manager.apply_execute_command = \
|
||||||
lambda iq, command_name: []
|
lambda iq, command_name: []
|
||||||
command.command_manager.component = MockComponent()
|
command.command_manager.component = MockComponent()
|
||||||
@@ -225,7 +258,8 @@ class CommandManager_TestCase(unittest.TestCase):
|
|||||||
self.assertEquals(result, [])
|
self.assertEquals(result, [])
|
||||||
|
|
||||||
def test_apply_command_action_to_wrong_jid(self):
|
def test_apply_command_action_to_wrong_jid(self):
|
||||||
command.command_manager.commands["command1"] = (False, command.account_node_re)
|
command.command_manager.commands["command1"] = (False,
|
||||||
|
command.account_node_re)
|
||||||
command.command_manager.apply_execute_command = \
|
command.command_manager.apply_execute_command = \
|
||||||
lambda iq, command_name: []
|
lambda iq, command_name: []
|
||||||
command.command_manager.component = MockComponent()
|
command.command_manager.component = MockComponent()
|
||||||
@@ -242,7 +276,8 @@ class CommandManager_TestCase(unittest.TestCase):
|
|||||||
self.assertEquals(result[0].xmlnode.children.children.name, "forbidden")
|
self.assertEquals(result[0].xmlnode.children.children.name, "forbidden")
|
||||||
|
|
||||||
def test_apply_command_non_existing_action(self):
|
def test_apply_command_non_existing_action(self):
|
||||||
command.command_manager.commands["command1"] = (False, command.root_node_re)
|
command.command_manager.commands["command1"] = (False,
|
||||||
|
command.root_node_re)
|
||||||
command.command_manager.component = MockComponent()
|
command.command_manager.component = MockComponent()
|
||||||
info_query = Iq(stanza_type="set",
|
info_query = Iq(stanza_type="set",
|
||||||
from_jid="user@test.com",
|
from_jid="user@test.com",
|
||||||
@@ -257,6 +292,45 @@ class CommandManager_TestCase(unittest.TestCase):
|
|||||||
self.assertEquals(result[0].xmlnode.children.children.name,
|
self.assertEquals(result[0].xmlnode.children.children.name,
|
||||||
"feature-not-implemented")
|
"feature-not-implemented")
|
||||||
|
|
||||||
|
def test_apply_command_unknown_command(self):
|
||||||
|
command.command_manager.component = MockComponent()
|
||||||
|
info_query = Iq(stanza_type="set",
|
||||||
|
from_jid="user@test.com",
|
||||||
|
to_jid="jcl.test.com")
|
||||||
|
result = command.command_manager.apply_command_action(info_query,
|
||||||
|
"command1",
|
||||||
|
"noexecute")
|
||||||
|
self.assertEquals(len(result), 1)
|
||||||
|
self.assertEquals(result[0].get_type(), "error")
|
||||||
|
self.assertEquals(result[0].xmlnode.children.name, "error")
|
||||||
|
self.assertEquals(result[0].xmlnode.children.prop("type"), "cancel")
|
||||||
|
self.assertEquals(result[0].xmlnode.children.children.name,
|
||||||
|
"feature-not-implemented")
|
||||||
|
|
||||||
|
def test_multi_step_command_unknown_step(self):
|
||||||
|
command.command_manager.commands["command1"] = (False,
|
||||||
|
command.root_node_re)
|
||||||
|
command.command_manager.component = MockComponent()
|
||||||
|
info_query = Iq(stanza_type="set",
|
||||||
|
from_jid="user@test.com",
|
||||||
|
to_jid="jcl.test.com")
|
||||||
|
command_node = info_query.set_new_content(command.COMMAND_NS,
|
||||||
|
"command")
|
||||||
|
command_node.setProp("node",
|
||||||
|
"command1")
|
||||||
|
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")
|
||||||
|
self.assertEquals(child.prop("node"), "command1")
|
||||||
|
child = result[0].xmlnode.children.next
|
||||||
|
self.assertEquals(child.name, "error")
|
||||||
|
self.assertEquals(child.prop("type"), "cancel")
|
||||||
|
self.assertEquals(child.children.name,
|
||||||
|
"feature-not-implemented")
|
||||||
|
|
||||||
class JCLCommandManager_TestCase(JCLTestCase):
|
class JCLCommandManager_TestCase(JCLTestCase):
|
||||||
def setUp(self, tables=[]):
|
def setUp(self, tables=[]):
|
||||||
tables += [Account, PresenceAccount, ExampleAccount,
|
tables += [Account, PresenceAccount, ExampleAccount,
|
||||||
@@ -281,6 +355,11 @@ class JCLCommandManager_TestCase(JCLTestCase):
|
|||||||
if os.path.exists(self.config_file):
|
if os.path.exists(self.config_file):
|
||||||
os.unlink(self.config_file)
|
os.unlink(self.config_file)
|
||||||
|
|
||||||
|
def test_init(self):
|
||||||
|
command_manager = JCLCommandManager(self.comp,
|
||||||
|
self.comp.account_manager)
|
||||||
|
self.assertEquals(len(command_manager.commands), 23)
|
||||||
|
|
||||||
def _check_actions(self, info_query, expected_actions=None, action_index=0):
|
def _check_actions(self, info_query, expected_actions=None, action_index=0):
|
||||||
actions = info_query.xpath_eval("c:command/c:actions",
|
actions = info_query.xpath_eval("c:command/c:actions",
|
||||||
{"c": "http://jabber.org/protocol/commands"})
|
{"c": "http://jabber.org/protocol/commands"})
|
||||||
@@ -413,6 +492,80 @@ class JCLCommandManager_TestCase(JCLTestCase):
|
|||||||
self.assertEquals(options[3].children.content,
|
self.assertEquals(options[3].children.content,
|
||||||
"account12/test1@test.com")
|
"account12/test1@test.com")
|
||||||
|
|
||||||
|
def test_add_form_select_accounts_without_user_jid(self):
|
||||||
|
self.comp.account_manager.account_classes = (ExampleAccount,
|
||||||
|
Example2Account)
|
||||||
|
model.db_connect()
|
||||||
|
user1 = User(jid="test1@test.com")
|
||||||
|
account11 = ExampleAccount(user=user1,
|
||||||
|
name="account11",
|
||||||
|
jid="account11@jcl.test.com")
|
||||||
|
account12 = Example2Account(user=user1,
|
||||||
|
name="account12",
|
||||||
|
jid="account12@jcl.test.com")
|
||||||
|
user2 = User(jid="test2@test.com")
|
||||||
|
account21 = ExampleAccount(user=user2,
|
||||||
|
name="account21",
|
||||||
|
jid="account21@jcl.test.com")
|
||||||
|
account22 = ExampleAccount(user=user2,
|
||||||
|
name="account11",
|
||||||
|
jid="account11@jcl.test.com")
|
||||||
|
user3 = User(jid="test3@test.com")
|
||||||
|
account31 = ExampleAccount(user=user3,
|
||||||
|
name="account31",
|
||||||
|
jid="account31@jcl.test.com")
|
||||||
|
account32 = Example2Account(user=user3,
|
||||||
|
name="account32",
|
||||||
|
jid="account32@jcl.test.com")
|
||||||
|
model.db_disconnect()
|
||||||
|
info_query = Iq(stanza_type="set",
|
||||||
|
from_jid="admin@test.com",
|
||||||
|
to_jid=self.comp.jid)
|
||||||
|
command_node = info_query.set_new_content(command.COMMAND_NS, "command")
|
||||||
|
session_context = {}
|
||||||
|
session_context["user_jids"] = ["test1@test.com", "test2@test.com"]
|
||||||
|
self.command_manager.add_form_select_accounts(session_context,
|
||||||
|
command_node,
|
||||||
|
Lang.en,
|
||||||
|
"title", "description",
|
||||||
|
show_user_jid=False)
|
||||||
|
x_data = info_query.xpath_eval("c:command/data:x",
|
||||||
|
{"c": "http://jabber.org/protocol/commands",
|
||||||
|
"data": "jabber:x:data"})
|
||||||
|
self.assertEquals(len(x_data), 1)
|
||||||
|
self.assertEquals(x_data[0].prop("type"), "form")
|
||||||
|
fields = info_query.xpath_eval("c:command/data:x/data:field",
|
||||||
|
{"c": "http://jabber.org/protocol/commands",
|
||||||
|
"data": "jabber:x:data"})
|
||||||
|
self.assertEquals(len(fields), 1)
|
||||||
|
self.assertEquals(fields[0].prop("var"), "account_names")
|
||||||
|
self.assertEquals(fields[0].prop("type"), "list-multi")
|
||||||
|
self.assertEquals(fields[0].prop("label"), Lang.en.field_accounts)
|
||||||
|
options = info_query.xpath_eval("c:command/data:x/data:field[1]/data:option",
|
||||||
|
{"c": "http://jabber.org/protocol/commands",
|
||||||
|
"data": "jabber:x:data"})
|
||||||
|
self.assertEquals(len(options), 4)
|
||||||
|
self.assertEquals(options[0].prop("label"),
|
||||||
|
"account11 (Example)")
|
||||||
|
self.assertEquals(options[0].children.name, "value")
|
||||||
|
self.assertEquals(options[0].children.content,
|
||||||
|
"account11/test1@test.com")
|
||||||
|
self.assertEquals(options[1].prop("label"),
|
||||||
|
"account21 (Example)")
|
||||||
|
self.assertEquals(options[1].children.name, "value")
|
||||||
|
self.assertEquals(options[1].children.content,
|
||||||
|
"account21/test2@test.com")
|
||||||
|
self.assertEquals(options[2].prop("label"),
|
||||||
|
"account11 (Example)")
|
||||||
|
self.assertEquals(options[2].children.name, "value")
|
||||||
|
self.assertEquals(options[2].children.content,
|
||||||
|
"account11/test2@test.com")
|
||||||
|
self.assertEquals(options[3].prop("label"),
|
||||||
|
"account12 (Example2)")
|
||||||
|
self.assertEquals(options[3].children.name, "value")
|
||||||
|
self.assertEquals(options[3].children.content,
|
||||||
|
"account12/test1@test.com")
|
||||||
|
|
||||||
def test_add_form_select_accounts_filtered(self):
|
def test_add_form_select_accounts_filtered(self):
|
||||||
self.comp.account_manager.account_classes = (ExampleAccount,
|
self.comp.account_manager.account_classes = (ExampleAccount,
|
||||||
Example2Account)
|
Example2Account)
|
||||||
|
|||||||
Reference in New Issue
Block a user