get_register second part

darcs-hash:20061026105944-86b55-186c984e426c5a3b396af082736b5b59fa44c07e.gz
This commit is contained in:
David Rousselie
2006-10-26 12:59:44 +02:00
parent fb554c7217
commit 49fd02310a
3 changed files with 52 additions and 25 deletions

View File

@@ -50,14 +50,14 @@ if __name__ == '__main__':
feeder_suite = unittest.makeSuite(Feeder_TestCase, "test")
sender_suite = unittest.makeSuite(Sender_TestCase, "test")
jcl_suite = unittest.TestSuite()
# jcl_suite.addTest(FeederComponent_TestCase('test_handle_get_register_new'))
jcl_suite.addTest(FeederComponent_TestCase('test_handle_get_register_exist'))
# jcl_suite.addTest(FeederComponent_TestCase('test_handle_presence_available_to_account_live_password'))
# jcl_suite = unittest.TestSuite((feeder_component_suite))
# jcl_suite = unittest.TestSuite((component_suite))
jcl_suite = unittest.TestSuite((component_suite,
feeder_component_suite,
feeder_suite,
sender_suite))
# jcl_suite = unittest.TestSuite((component_suite,
# feeder_component_suite,
# feeder_suite,
# sender_suite))
test_support.run_suite(jcl_suite)

View File

@@ -302,17 +302,19 @@ class JCLComponent(Component):
"""Send back register form to user
"""
self.__logger.debug("GET_REGISTER")
## TODO Lang
lang_class = self.__lang.get_lang_class_from_node(info_query.get_node())
base_from_jid = unicode(info_query.get_from().bare())
to_jid = info_query.get_to()
name = to_jid.node
info_query = info_query.make_result_response()
query = info_query.new_query("jabber:iq:register")
if to_jid and to_jid != self.jid:
self.db_connect()
self.get_reg_form_init(lang_class, \
self.account_class.select() # TODO
).attach_xml(query)
for _account in self.account_class.select(\
self.account_class.q.user_jid == base_from_jid \
and self.account_class.q.name == name):
self.get_reg_form_init(lang_class, \
_account).attach_xml(query)
self.db_disconnect()
else:
self.get_reg_form(lang_class).attach_xml(query)
@@ -569,8 +571,11 @@ class JCLComponent(Component):
def get_reg_form_init(self, lang_class, account):
"""Return register form for an existing account (update)
"""
# TODO
return X()
reg_form = self.get_reg_form(lang_class)
for (field_name, field) in reg_form.fields.items():
if hasattr(self.account_class, field_name):
field.value = getattr(self.account_class, field_name)
return reg_form
###########################################################################
# Virtual methods

View File

@@ -278,19 +278,6 @@ class JCLComponent_TestCase(unittest.TestCase):
disco_items = self.comp.disco_get_items("account1", info_query)
self.assertEquals(disco_items.get_items(), [])
def test_get_reg_form(self):
## self.comp.get_reg_form(Lang.en, Account)
# TODO
self.assertTrue(True)
def test_get_reg_form_init(self):
account.hub.threadConnection = connectionForURI('sqlite://' + DB_URL)
account1 = Account(user_jid = "", name = "", jid = "")
del account.hub.threadConnection
## self.comp.get_reg_form_init(Lang.en, account1)
# TODO
self.assertTrue(True)
def test_handle_get_version(self):
self.comp.stream = MockStream()
self.comp.stream_class = MockStream
@@ -344,7 +331,42 @@ class JCLComponent_TestCase(unittest.TestCase):
def test_handle_get_register_exist(self):
pass
self.comp.stream = MockStream()
self.comp.stream_class = MockStream
account.hub.threadConnection = connectionForURI('sqlite://' + DB_URL)
account1 = Account(user_jid = "user1@test.com", \
name = "account1", \
jid = "account1@jcl.test.com")
del account.hub.threadConnection
self.comp.handle_get_register(Iq(stanza_type = "get", \
from_jid = "user1@test.com", \
to_jid = "account1@jcl.test.com"))
self.assertEquals(len(self.comp.stream.sent), 1)
iq_sent = self.comp.stream.sent[0]
self.assertEquals(iq_sent.get_to(), "user1@test.com")
titles = iq_sent.xpath_eval("jir:query/jxd:x/jxd:title", \
{"jir" : "jabber:iq:register", \
"jxd" : "jabber:x:data"})
self.assertEquals(len(titles), 1)
self.assertEquals(titles[0].content, \
Lang.en.register_title)
instructions = iq_sent.xpath_eval("jir:query/jxd:x/jxd:instructions", \
{"jir" : "jabber:iq:register", \
"jxd" : "jabber:x:data"})
self.assertEquals(len(instructions), 1)
self.assertEquals(instructions[0].content, \
Lang.en.register_instructions)
fields = iq_sent.xpath_eval("jir:query/jxd:x/jxd:field", \
{"jir" : "jabber:iq:register", \
"jxd" : "jabber:x:data"})
self.assertEquals(len(fields), 1)
self.assertEquals(len([field
for field in fields \
if field.prop("type") == "text-single" \
and field.prop("var") == "name" \
and field.prop("label") == \
Lang.en.account_name]), \
1)
def test_handle_set_register(self):
pass