class FakeSMTPServerThread(threading.Thread): """ Thread for running a fake SMTP server for testing email """ def __init__(self, host, port): self.host = host self.port = port self.is_ready = threading.Event() self.error = None self.server = None super(FakeSMTPServerThread, self).__init__() def start(self): self.daemon = True super(FakeSMTPServerThread, self).start() self.is_ready.wait() if self.error: raise self.error def stop(self): if hasattr(self, 'server'): self.server.close() self.join() def run(self): """ Sets up the test smtp server and handle requests """ try: self.server = FakeSMTPServer((self.host, self.port), None) self.is_ready.set() self.server.serve_forever() except Exception, e: self.error = e self.is_ready.set()
def run(self): """ Sets up the test smtp server and handle requests """ try: self.server = FakeSMTPServer((self.host, self.port), None) self.is_ready.set() self.server.serve_forever() except Exception, e: self.error = e self.is_ready.set()
def run(self): """ Sets up the test smtp server and handle requests. """ try: self.server = FakeSMTPServer((self.host, self.port), None) self.is_ready.set() self.server.serve_forever() except Exception, exc: # pylint: disable=W0703 self.error = exc self.is_ready.set()
class FakeSMTPServerThread(threading.Thread): """ Thread for running a fake SMTP server """ def __init__(self, host, port): self.host = host self.port = port self.is_ready = threading.Event() self.error = None self.server = None super(FakeSMTPServerThread, self).__init__() def start(self): self.daemon = True super(FakeSMTPServerThread, self).start() self.is_ready.wait() if self.error: raise self.error # pylint: disable=E0702 def stop(self): """ Stop the thread by closing the server instance. Wait for the server thread to terminate. """ if hasattr(self, 'server'): self.server.close() self.join() def run(self): """ Sets up the test smtp server and handle requests. """ try: self.server = FakeSMTPServer((self.host, self.port), None) self.is_ready.set() self.server.serve_forever() except Exception, exc: # pylint: disable=W0703 self.error = exc self.is_ready.set()