empty string returned by filters is considered as negative answer
Ignore-this: fb7980cb649ee921d143f11729293123 darcs-hash:20090216204350-86b55-068aa4e8366ff2e5d1c7f4e4f6f99b0ae733bc8c.gz
This commit is contained in:
@@ -862,7 +862,7 @@ class JCLComponent(Component, object):
|
|||||||
data = apply_filter_func(handler.filter, stanza, lang_class)
|
data = apply_filter_func(handler.filter, stanza, lang_class)
|
||||||
else:
|
else:
|
||||||
data = handler.filter(stanza, lang_class)
|
data = handler.filter(stanza, lang_class)
|
||||||
if data is not None and data != False:
|
if data is not None and data != False and data != "":
|
||||||
self.__logger.debug("Applying handler " + repr(handler))
|
self.__logger.debug("Applying handler " + repr(handler))
|
||||||
if apply_handle_func is not None:
|
if apply_handle_func is not None:
|
||||||
handler_result = apply_handle_func(handler.handle,
|
handler_result = apply_handle_func(handler.handle,
|
||||||
|
|||||||
@@ -22,6 +22,8 @@
|
|||||||
##
|
##
|
||||||
|
|
||||||
import unittest
|
import unittest
|
||||||
|
import logging
|
||||||
|
import sys
|
||||||
|
|
||||||
import threading
|
import threading
|
||||||
import time
|
import time
|
||||||
@@ -214,6 +216,45 @@ class JCLComponent_apply_registered_behavior_TestCase(JCLComponent_TestCase):
|
|||||||
self.assertEquals(result[0][0], message)
|
self.assertEquals(result[0][0], message)
|
||||||
self.assertEquals(result[1][0], message)
|
self.assertEquals(result[1][0], message)
|
||||||
|
|
||||||
|
def test_apply_one_registered_behavior_return_none(self):
|
||||||
|
self.comp.stream = MockStreamNoConnect()
|
||||||
|
self.comp.stream_class = MockStreamNoConnect
|
||||||
|
message = Message(from_jid="user1@test.com",
|
||||||
|
to_jid="account11@jcl.test.com")
|
||||||
|
handler1 = HandlerMock()
|
||||||
|
handler1.filter = lambda stanza, lang_class: None
|
||||||
|
handler2 = HandlerMock()
|
||||||
|
result = self.comp.apply_registered_behavior([[handler1], [handler2]],
|
||||||
|
message)
|
||||||
|
self.assertEquals(len(result), 1)
|
||||||
|
self.assertEquals(result[0][0], message)
|
||||||
|
|
||||||
|
def test_apply_one_registered_behavior_return_false(self):
|
||||||
|
self.comp.stream = MockStreamNoConnect()
|
||||||
|
self.comp.stream_class = MockStreamNoConnect
|
||||||
|
message = Message(from_jid="user1@test.com",
|
||||||
|
to_jid="account11@jcl.test.com")
|
||||||
|
handler1 = HandlerMock()
|
||||||
|
handler1.filter = lambda stanza, lang_class: False
|
||||||
|
handler2 = HandlerMock()
|
||||||
|
result = self.comp.apply_registered_behavior([[handler1], [handler2]],
|
||||||
|
message)
|
||||||
|
self.assertEquals(len(result), 1)
|
||||||
|
self.assertEquals(result[0][0], message)
|
||||||
|
|
||||||
|
def test_apply_one_registered_behavior_return_empty_str(self):
|
||||||
|
self.comp.stream = MockStreamNoConnect()
|
||||||
|
self.comp.stream_class = MockStreamNoConnect
|
||||||
|
message = Message(from_jid="user1@test.com",
|
||||||
|
to_jid="account11@jcl.test.com")
|
||||||
|
handler1 = HandlerMock()
|
||||||
|
handler1.filter = lambda stanza, lang_class: ""
|
||||||
|
handler2 = HandlerMock()
|
||||||
|
result = self.comp.apply_registered_behavior([[handler1], [handler2]],
|
||||||
|
message)
|
||||||
|
self.assertEquals(len(result), 1)
|
||||||
|
self.assertEquals(result[0][0], message)
|
||||||
|
|
||||||
def test_apply_one_registered_behavior(self):
|
def test_apply_one_registered_behavior(self):
|
||||||
self.comp.stream = MockStreamNoConnect()
|
self.comp.stream = MockStreamNoConnect()
|
||||||
self.comp.stream_class = MockStreamNoConnect
|
self.comp.stream_class = MockStreamNoConnect
|
||||||
@@ -3344,4 +3385,8 @@ def suite():
|
|||||||
return test_suite
|
return test_suite
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
logger = logging.getLogger()
|
||||||
|
logger.addHandler(logging.StreamHandler())
|
||||||
|
if '-v' in sys.argv:
|
||||||
|
logger.setLevel(logging.INFO)
|
||||||
unittest.main(defaultTest='suite')
|
unittest.main(defaultTest='suite')
|
||||||
|
|||||||
Reference in New Issue
Block a user