get_register_new implementation
darcs-hash:20061025182846-86b55-54ee4fb3315f3155b32864018ab636895e8d2eb9.gz
This commit is contained in:
@@ -50,7 +50,7 @@ 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_version'))
|
||||
# jcl_suite.addTest(FeederComponent_TestCase('test_handle_get_register_new'))
|
||||
# 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))
|
||||
|
||||
@@ -277,7 +277,6 @@ class JCLComponent(Component):
|
||||
base_from_jid = unicode(info_query.get_from().bare())
|
||||
disco_items = DiscoItems()
|
||||
if not node:
|
||||
## TODO : list accounts
|
||||
self.db_connect()
|
||||
for account in self.account_class.select(Account.q.user_jid == \
|
||||
base_from_jid):
|
||||
@@ -304,9 +303,8 @@ class JCLComponent(Component):
|
||||
"""
|
||||
self.__logger.debug("GET_REGISTER")
|
||||
## TODO Lang
|
||||
## lang_class = self.__lang.get_lang_class_from_node(info_query.get_node())
|
||||
lang_class = None
|
||||
## base_from_jid = unicode(info_query.get_from().bare())
|
||||
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()
|
||||
info_query = info_query.make_result_response()
|
||||
query = info_query.new_query("jabber:iq:register")
|
||||
@@ -545,8 +543,28 @@ class JCLComponent(Component):
|
||||
def get_reg_form(self, lang_class):
|
||||
"""Return register form based on language and account class
|
||||
"""
|
||||
# TODO
|
||||
return X()
|
||||
# TODO : handle text-private for password
|
||||
# TODO : handle list-single
|
||||
reg_form = X()
|
||||
reg_form.xmlns = "jabber:x:data"
|
||||
reg_form.title = lang_class.register_title
|
||||
reg_form.instructions = lang_class.register_instructions
|
||||
reg_form.type = "form"
|
||||
|
||||
for (field, field_type) in \
|
||||
self.account_class.get_register_fields():
|
||||
lang_label_attr = self.account_class.__name__.lower() \
|
||||
+ "_" + field
|
||||
if hasattr(lang_class, lang_label_attr):
|
||||
label = getattr(lang_class, lang_label_attr)
|
||||
else:
|
||||
label = field
|
||||
reg_form.add_field(field_type = field_type, \
|
||||
label = label, \
|
||||
var = field)
|
||||
## TODO : Add page when empty tuple given
|
||||
## TODO : get default value if any
|
||||
return reg_form
|
||||
|
||||
def get_reg_form_init(self, lang_class, account):
|
||||
"""Return register form for an existing account (update)
|
||||
|
||||
@@ -89,3 +89,8 @@ class Account(SQLObject):
|
||||
|
||||
status = property(get_status, set_status)
|
||||
|
||||
|
||||
def get_register_fields(cls):
|
||||
return [('name', "text-single")]
|
||||
|
||||
get_register_fields = classmethod(get_register_fields)
|
||||
|
||||
@@ -317,10 +317,30 @@ class JCLComponent_TestCase(unittest.TestCase):
|
||||
to_jid = "jcl.test.com"))
|
||||
self.assertEquals(len(self.comp.stream.sent), 1)
|
||||
iq_sent = self.comp.stream.sent[0]
|
||||
# print str(iq_sent.get_node())
|
||||
self.assertEquals(iq_sent.get_to(), "user1@test.com")
|
||||
# self.assertEquals(len(iq_sent.xpath_eval("*/*")), 1)
|
||||
# TODO
|
||||
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_get_register_exist(self):
|
||||
|
||||
Reference in New Issue
Block a user