~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_server.py

(jameinel) Allow 'bzr serve' to interpret SIGHUP as a graceful shutdown.
 (bug #795025) (John A Meinel)

Show diffs side-by-side

added added

removed removed

Lines of Context:
265
265
            #raise AssertionError('thread %s hung' % (self.name,))
266
266
 
267
267
 
268
 
class TestingTCPServerMixin:
 
268
class TestingTCPServerMixin(object):
269
269
    """Mixin to support running SocketServer.TCPServer in a thread.
270
270
 
271
271
    Tests are connecting from the main thread, the server has to be run in a
589
589
    def __init__(self, request, client_address, server):
590
590
        medium.SmartServerSocketStreamMedium.__init__(
591
591
            self, request, server.backing_transport,
592
 
            server.root_client_path)
 
592
            server.root_client_path,
 
593
            timeout=_DEFAULT_TESTING_CLIENT_TIMEOUT)
593
594
        request.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
594
595
        SocketServer.BaseRequestHandler.__init__(self, request, client_address,
595
596
                                                 server)
600
601
            self._serve_one_request(server_protocol)
601
602
 
602
603
 
 
604
_DEFAULT_TESTING_CLIENT_TIMEOUT = 4.0
 
605
 
603
606
class TestingSmartServer(TestingThreadingTCPServer, server.SmartTCPServer):
604
607
 
605
608
    def __init__(self, server_address, request_handler_class,
607
610
        TestingThreadingTCPServer.__init__(self, server_address,
608
611
                                           request_handler_class)
609
612
        server.SmartTCPServer.__init__(self, backing_transport,
610
 
                                       root_client_path)
 
613
            root_client_path, client_timeout=_DEFAULT_TESTING_CLIENT_TIMEOUT)
 
614
 
611
615
    def serve(self):
612
616
        self.run_server_started_hooks()
613
617
        try: