'get-registered-users-num' ad-hoc command implementation

darcs-hash:20070808161056-86b55-beb206de8ee45272b4740ccc73e6ebfecb6a304d.gz
This commit is contained in:
David Rousselie
2007-08-08 18:10:56 +02:00
parent 702e58324f
commit fbded39935
2 changed files with 52 additions and 10 deletions

View File

@@ -610,8 +610,19 @@ class JCLCommandManager(CommandManager):
command_node.setProp("status", STATUS_COMPLETED) command_node.setProp("status", STATUS_COMPLETED)
return (result_form, []) return (result_form, [])
def execute_user_stats(self, info_query): def execute_get_registered_users_num_1(self, info_query, session_context,
return [] command_node, lang_class):
result_form = Form(xmlnode_or_type="result")
result_form.add_field(field_type="hidden",
name="FORM_TYPE",
value="http://jabber.org/protocol/admin")
num_accounts = account.get_all_accounts_count()
result_form.fields.append(FieldNoType(name="registeredusersnum",
label="TODO",
value=num_accounts))
result_form.as_xml(command_node)
command_node.setProp("status", STATUS_COMPLETED)
return (result_form, [])
def execute_edit_blacklist(self, info_query): def execute_edit_blacklist(self, info_query):
return [] return []

View File

@@ -1510,14 +1510,45 @@ class JCLCommandManager_TestCase(JCLTestCase):
self.assertEquals(fields[2].children.name, "value") self.assertEquals(fields[2].children.name, "value")
self.assertEquals(fields[2].children.content, account11.lastlogin.isoformat(" ")) self.assertEquals(fields[2].children.content, account11.lastlogin.isoformat(" "))
# def test_execute_user_stats(self): def test_execute_get_registered_users_num(self):
# #TODO : implement command self.comp.account_manager.account_classes = (ExampleAccount,
# info_query = Iq(stanza_type="set", Example2Account)
# from_jid="user1@test.com", model.db_connect()
# to_jid="jcl.test.com") account11 = ExampleAccount(user_jid="test1@test.com",
# result = self.command_manager.execute_add_user(info_query) name="account11",
# self.assertNotEquals(result, None) jid="account11@jcl.test.com")
# self.assertEquals(len(result), 1) account12 = Example2Account(user_jid="test1@test.com",
name="account12",
jid="account12@jcl.test.com")
account21 = ExampleAccount(user_jid="test2@test.com",
name="account21",
jid="account21@jcl.test.com")
account22 = ExampleAccount(user_jid="test2@test.com",
name="account11",
jid="account11@jcl.test.com")
model.db_disconnect()
info_query = Iq(stanza_type="set",
from_jid="user1@test.com",
to_jid="jcl.test.com")
command_node = info_query.set_new_content(command.COMMAND_NS, "command")
command_node.setProp("node", "http://jabber.org/protocol/admin#get-registered-users-num")
result = self.command_manager.apply_command_action(info_query,
"http://jabber.org/protocol/admin#get-registered-users-num",
"execute")
self.assertNotEquals(result, None)
self.assertEquals(len(result), 1)
xml_command = result[0].xpath_eval("c:command",
{"c": "http://jabber.org/protocol/commands"})[0]
self.assertEquals(xml_command.prop("status"), "completed")
self.assertNotEquals(xml_command.prop("sessionid"), None)
self.__check_actions(result[0])
fields = result[0].xpath_eval("c:command/data:x/data:field",
{"c": "http://jabber.org/protocol/commands",
"data": "jabber:x:data"})
self.assertEquals(len(fields), 2)
self.assertEquals(fields[1].prop("var"), "registeredusersnum")
self.assertEquals(fields[1].children.name, "value")
self.assertEquals(fields[1].children.content, "4")
# def test_execute_edit_blacklist(self): # def test_execute_edit_blacklist(self):
# #TODO : implement command # #TODO : implement command