Add post processing boolean field function to take into account boolean sent as strings
This commit is contained in:
@@ -258,7 +258,7 @@ class AccountManager(object):
|
|||||||
lang_class,
|
lang_class,
|
||||||
x_data):
|
x_data):
|
||||||
"""Update account"""
|
"""Update account"""
|
||||||
self.__logger.debug("Updating account " + account_name)
|
self.__logger.debug("Updating account " + str(account_name))
|
||||||
bare_from_jid = unicode(from_jid.bare())
|
bare_from_jid = unicode(from_jid.bare())
|
||||||
_account = account.get_account(bare_from_jid,
|
_account = account.get_account(bare_from_jid,
|
||||||
account_name)
|
account_name)
|
||||||
@@ -341,7 +341,7 @@ class AccountManager(object):
|
|||||||
presence))
|
presence))
|
||||||
for _account in account.get_all_accounts():
|
for _account in account.get_all_accounts():
|
||||||
result.extend(getattr(self, "get_account_presence_" +
|
result.extend(getattr(self, "get_account_presence_" +
|
||||||
presence)(_account.user.jid, _account))
|
str(presence))(_account.user.jid, _account))
|
||||||
return result
|
return result
|
||||||
|
|
||||||
def get_root_presence(self, to_jid, presence_type,
|
def get_root_presence(self, to_jid, presence_type,
|
||||||
@@ -418,8 +418,8 @@ class AccountManager(object):
|
|||||||
if account_class is None:
|
if account_class is None:
|
||||||
account_class = self.account_classes[0]
|
account_class = self.account_classes[0]
|
||||||
if account_type is not None and account_type != "":
|
if account_type is not None and account_type != "":
|
||||||
resource = "/" + account_type
|
resource = "/" + str(account_type)
|
||||||
account_type = account_type + "/"
|
account_type = str(account_type) + "/"
|
||||||
else:
|
else:
|
||||||
resource = ""
|
resource = ""
|
||||||
model.db_connect()
|
model.db_connect()
|
||||||
@@ -432,7 +432,7 @@ class AccountManager(object):
|
|||||||
def list_account_types(self, lang_class):
|
def list_account_types(self, lang_class):
|
||||||
"""List account supported types"""
|
"""List account supported types"""
|
||||||
for account_type in self.account_types:
|
for account_type in self.account_types:
|
||||||
type_label_attr = "type_" + account_type.lower() + "_name"
|
type_label_attr = "type_" + str(account_type).lower() + "_name"
|
||||||
if hasattr(lang_class, type_label_attr):
|
if hasattr(lang_class, type_label_attr):
|
||||||
type_label = getattr(lang_class, type_label_attr)
|
type_label = getattr(lang_class, type_label_attr)
|
||||||
else:
|
else:
|
||||||
@@ -519,7 +519,7 @@ class AccountManager(object):
|
|||||||
|
|
||||||
def get_account_jid(self, name):
|
def get_account_jid(self, name):
|
||||||
"""Compose account jid from account name"""
|
"""Compose account jid from account name"""
|
||||||
return name + u"@" + unicode(self.component.jid)
|
return unicode(name) + u"@" + unicode(self.component.jid)
|
||||||
|
|
||||||
def ask_password(self, to_jid, _account, lang_class):
|
def ask_password(self, to_jid, _account, lang_class):
|
||||||
"""Send a Jabber message to ask for account password
|
"""Send a Jabber message to ask for account password
|
||||||
@@ -1079,7 +1079,7 @@ class JCLComponent(Component, object):
|
|||||||
"""Handle new message
|
"""Handle new message
|
||||||
Handle password response message
|
Handle password response message
|
||||||
"""
|
"""
|
||||||
self.__logger.debug("MESSAGE: " + message.get_body())
|
self.__logger.debug("MESSAGE: " + str(message.get_body()))
|
||||||
self.apply_registered_behavior(self.msg_handlers, message)
|
self.apply_registered_behavior(self.msg_handlers, message)
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
|
|||||||
@@ -49,6 +49,17 @@ def default_post_func(field_value, default_func, bare_from_jid):
|
|||||||
return default_func(bare_from_jid)
|
return default_func(bare_from_jid)
|
||||||
return field_value
|
return field_value
|
||||||
|
|
||||||
|
def boolean_post_func(field_value, default_func, bare_from_jid):
|
||||||
|
"""Return a boolean for boolean field"""
|
||||||
|
if field_value is None or str(field_value) == "":
|
||||||
|
return default_func(bare_from_jid)
|
||||||
|
if isinstance(field_value, str) or isinstance(field_value, unicode):
|
||||||
|
field_value = field_value.lower()
|
||||||
|
bool_value = (field_value == "true" or field_value == "1")
|
||||||
|
else:
|
||||||
|
bool_value = field_value
|
||||||
|
return bool_value
|
||||||
|
|
||||||
def int_post_func(field_value, default_func, bare_from_jid):
|
def int_post_func(field_value, default_func, bare_from_jid):
|
||||||
"""Return an integer from integer field value"""
|
"""Return an integer from integer field value"""
|
||||||
if field_value is None or str(field_value) == "":
|
if field_value is None or str(field_value) == "":
|
||||||
|
|||||||
@@ -137,6 +137,42 @@ class AccountModule_TestCase(JCLTestCase):
|
|||||||
"user1@jcl.test.com")
|
"user1@jcl.test.com")
|
||||||
self.assertEquals(result, "test")
|
self.assertEquals(result, "test")
|
||||||
|
|
||||||
|
def test_boolean_post_func_with_1_str(self):
|
||||||
|
result = account.boolean_post_func("1", None, "user1@jcl.test.com")
|
||||||
|
self.assertEquals(result, True)
|
||||||
|
|
||||||
|
def test_boolean_post_func_with_True_str(self):
|
||||||
|
result = account.boolean_post_func("True", None, "user1@jcl.test.com")
|
||||||
|
self.assertEquals(result, True)
|
||||||
|
|
||||||
|
def test_boolean_post_func_with_False_str(self):
|
||||||
|
result = account.boolean_post_func("False", None, "user1@jcl.test.com")
|
||||||
|
self.assertEquals(result, False)
|
||||||
|
|
||||||
|
def test_boolean_post_func_with_1_unicode(self):
|
||||||
|
result = account.boolean_post_func(u"1", None, "user1@jcl.test.com")
|
||||||
|
self.assertEquals(result, True)
|
||||||
|
|
||||||
|
def test_boolean_post_func_with_True_unicode(self):
|
||||||
|
result = account.boolean_post_func(u"true", None, "user1@jcl.test.com")
|
||||||
|
self.assertEquals(result, True)
|
||||||
|
|
||||||
|
def test_boolean_post_func_with_False_unicode(self):
|
||||||
|
result = account.boolean_post_func(u"False", None, "user1@jcl.test.com")
|
||||||
|
self.assertEquals(result, False)
|
||||||
|
|
||||||
|
def test_boolean_post_func_with_1(self):
|
||||||
|
result = account.boolean_post_func(1, None, "user1@jcl.test.com")
|
||||||
|
self.assertEquals(result, False)
|
||||||
|
|
||||||
|
def test_boolean_post_func_with_True(self):
|
||||||
|
result = account.boolean_post_func(True, None, "user1@jcl.test.com")
|
||||||
|
self.assertEquals(result, True)
|
||||||
|
|
||||||
|
def test_boolean_post_func_with_False(self):
|
||||||
|
result = account.boolean_post_func(False, None, "user1@jcl.test.com")
|
||||||
|
self.assertEquals(result, False)
|
||||||
|
|
||||||
def test_int_post_func(self):
|
def test_int_post_func(self):
|
||||||
result = account.int_post_func("42", None, "user1@jcl.test.com")
|
result = account.int_post_func("42", None, "user1@jcl.test.com")
|
||||||
self.assertEquals(result, 42)
|
self.assertEquals(result, 42)
|
||||||
|
|||||||
Reference in New Issue
Block a user