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,
|
||||
x_data):
|
||||
"""Update account"""
|
||||
self.__logger.debug("Updating account " + account_name)
|
||||
self.__logger.debug("Updating account " + str(account_name))
|
||||
bare_from_jid = unicode(from_jid.bare())
|
||||
_account = account.get_account(bare_from_jid,
|
||||
account_name)
|
||||
@@ -341,7 +341,7 @@ class AccountManager(object):
|
||||
presence))
|
||||
for _account in account.get_all_accounts():
|
||||
result.extend(getattr(self, "get_account_presence_" +
|
||||
presence)(_account.user.jid, _account))
|
||||
str(presence))(_account.user.jid, _account))
|
||||
return result
|
||||
|
||||
def get_root_presence(self, to_jid, presence_type,
|
||||
@@ -418,8 +418,8 @@ class AccountManager(object):
|
||||
if account_class is None:
|
||||
account_class = self.account_classes[0]
|
||||
if account_type is not None and account_type != "":
|
||||
resource = "/" + account_type
|
||||
account_type = account_type + "/"
|
||||
resource = "/" + str(account_type)
|
||||
account_type = str(account_type) + "/"
|
||||
else:
|
||||
resource = ""
|
||||
model.db_connect()
|
||||
@@ -432,7 +432,7 @@ class AccountManager(object):
|
||||
def list_account_types(self, lang_class):
|
||||
"""List account supported 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):
|
||||
type_label = getattr(lang_class, type_label_attr)
|
||||
else:
|
||||
@@ -519,7 +519,7 @@ class AccountManager(object):
|
||||
|
||||
def get_account_jid(self, 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):
|
||||
"""Send a Jabber message to ask for account password
|
||||
@@ -1079,7 +1079,7 @@ class JCLComponent(Component, object):
|
||||
"""Handle new 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)
|
||||
return 1
|
||||
|
||||
|
||||
@@ -49,6 +49,17 @@ def default_post_func(field_value, default_func, bare_from_jid):
|
||||
return default_func(bare_from_jid)
|
||||
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):
|
||||
"""Return an integer from integer field value"""
|
||||
if field_value is None or str(field_value) == "":
|
||||
|
||||
@@ -137,6 +137,42 @@ class AccountModule_TestCase(JCLTestCase):
|
||||
"user1@jcl.test.com")
|
||||
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):
|
||||
result = account.int_post_func("42", None, "user1@jcl.test.com")
|
||||
self.assertEquals(result, 42)
|
||||
|
||||
Reference in New Issue
Block a user