diff --git a/run_tests.py b/run_tests.py index 56274f4..0c74e4e 100644 --- a/run_tests.py +++ b/run_tests.py @@ -61,9 +61,9 @@ if __name__ == '__main__': jcl_suite = unittest.TestSuite() # jcl_suite.addTest(FeederComponent_TestCase('test_handle_tick')) -# jcl_suite.addTest(FeederComponent_TestCase('test_handle_get_register_new')) +# jcl_suite.addTest(JCLComponent_TestCase('test_handle_set_register_new_field_mandatory')) # jcl_suite = unittest.TestSuite((feeder_component_suite)) -# jcl_suite = unittest.TestSuite((dataform_suite)) +# jcl_suite = unittest.TestSuite((component_suite)) jcl_suite = unittest.TestSuite((component_suite, \ feeder_component_suite, \ feeder_suite, \ diff --git a/src/jcl/jabber/component.py b/src/jcl/jabber/component.py index ccf3666..06a5b75 100644 --- a/src/jcl/jabber/component.py +++ b/src/jcl/jabber/component.py @@ -98,6 +98,7 @@ class JCLComponent(Component, object): self.__logger = logging.getLogger("jcl.jabber.JCLComponent") self.lang = Lang() self.running = False + self.wait_event = threading.Event() signal.signal(signal.SIGINT, self.signal_handler) signal.signal(signal.SIGTERM, self.signal_handler) @@ -162,6 +163,7 @@ class JCLComponent(Component, object): to_jid = _account.user_jid, \ stanza_type = "unavailable")) self.db_disconnect() + self.wait_event.set() timer_thread.join(JCLComponent.timeout) self.disconnect() self.__logger.debug("Exitting normally") @@ -194,10 +196,12 @@ class JCLComponent(Component, object): and self.stream.socket is not None): self.handle_tick() self.__logger.debug("Resetting alarm signal") - time.sleep(self.time_unit) + ##time.sleep(self.time_unit) + self.wait_event.wait(self.time_unit) except Exception, exception: self.queue.put(exception) raise + self.__logger.info("Timer thread terminated...") def authenticated(self): """Override authenticated Component event handler