capture SIGHUP and SIGTERM (windows) and disconnect; also testall no longer loads string26 with python3

This commit is contained in:
Nathan Fritz 2010-10-20 17:30:12 -07:00
parent 11a6e6d2e0
commit 11264fe0a8
2 changed files with 14 additions and 2 deletions

View file

@ -16,6 +16,7 @@ import sys
import threading import threading
import time import time
import types import types
import signal
try: try:
import queue import queue
except ImportError: except ImportError:
@ -195,6 +196,17 @@ class XMLStream(object):
self.auto_reconnect = True self.auto_reconnect = True
self.is_client = False self.is_client = False
signal.signal(signal.SIGHUP, self._handle_kill)
signal.signal(signal.SIGTERM, self._handle_kill) # used in Windows
def _handle_kill(self, signum, frame):
"""
Capture kill event and disconnect cleanly after first
spawning the "killed" event.
"""
self.event("killed", direct=True)
self.disconnect()
def new_id(self): def new_id(self):
""" """
Generate and return a new stream ID in hexadecimal form. Generate and return a new stream ID in hexadecimal form.
@ -710,7 +722,7 @@ class XMLStream(object):
if depth == 0: if depth == 0:
# The stream's root element has closed, # The stream's root element has closed,
# terminating the stream. # terminating the stream.
logging.debug("Ending read XML loop") logging.debug("End of stream recieved")
self.stream_end_event.set() self.stream_end_event.set()
return False return False
elif depth == 1: elif depth == 1:

View file

@ -13,7 +13,7 @@ class testoverall(unittest.TestCase):
if sys.version_info < (3,0): if sys.version_info < (3,0):
self.failUnless(compileall.compile_dir('.' + os.sep + 'sleekxmpp', rx=re.compile('/[.]svn'), quiet=True)) self.failUnless(compileall.compile_dir('.' + os.sep + 'sleekxmpp', rx=re.compile('/[.]svn'), quiet=True))
else: else:
self.failUnless(compileall.compile_dir('.' + os.sep + 'sleekxmpp', rx=re.compile('/[.]svn|.*26\Z'), quiet=True)) self.failUnless(compileall.compile_dir('.' + os.sep + 'sleekxmpp', rx=re.compile('/[.]svn|.*26.*'), quiet=True))
def testTabNanny(self): def testTabNanny(self):
"""Invoking the tabnanny""" """Invoking the tabnanny"""