Пример #1
0
class ThreadedLocalServer(Thread):
    def __init__(self, port, host='localhost'):
        super(ThreadedLocalServer, self).__init__()
        self._app_object = None
        self._config = None
        self._host = host
        self._port = port
        self._server = None
        self._server_ready = Event()

    def wait_for_server_ready(self):
        self._server_ready.wait()

    def configure(self, app_object, config):
        self._app_object = app_object
        self._config = config

    def run(self):
        self._server = LocalDevServer(
            self._app_object, self._config, self._host, self._port)
        self._server_ready.set()
        self._server.serve_forever()

    def make_call(self, method, path, port, timeout=0.5):
        self._server_ready.wait()
        return method('http://{host}:{port}{path}'.format(
            path=path, host=self._host, port=port), timeout=timeout)

    def shutdown(self):
        if self._server is not None:
            self._server.server.shutdown()
Пример #2
0
 def run(self):
     self._server = LocalDevServer(
         self._app_object,
         self._config,
         self._host,
         self._port,
     )
     self._server_ready.set()
     self._server.serve_forever()
Пример #3
0
    def test_can_delegate_to_server(self, sample_app):
        http_server = mock.Mock(spec=HTTPServer)
        dev_server = LocalDevServer(
            sample_app, Config(), '0.0.0.0', 8000,
            server_cls=lambda *args: http_server,
        )

        dev_server.handle_single_request()
        http_server.handle_request.assert_called_with()

        dev_server.serve_forever()
        http_server.serve_forever.assert_called_with()
Пример #4
0
 def __init__(self):
     super().__init__()
     self._app_object = self
     self._config = Config()
     self._host = options['host']
     self._port = options['port']
     self._server = LocalDevServer(command.app,
                                   self._config, self._host,
                                   self._port)
Пример #5
0
class ThreadedLocalServer(Thread):
    def __init__(self, *, port=None, host='localhost'):
        super().__init__()
        self._app_object = None
        self._config = None
        self._host = host
        self._port = port or self.unused_tcp_port()
        self._server = None
        self._server_ready = Event()

    def configure(self, app_object, config=None, **kwargs):
        self._app_object = app_object
        self._config = config

    def run(self):
        self._server = LocalDevServer(
            self._app_object,
            self._config,
            self._host,
            self._port,
        )
        self._server_ready.set()
        self._server.serve_forever()

    def serve_forever(self):
        self._server.serve_forever()

    def shutdown(self):
        if self._server is not None:
            self._server.server.shutdown()

    def make_call(self, method, path, timeout=0.5, **kwarg):
        self._server_ready.wait()
        return method(f'http://{self._host}:{self._port}{path}',
                      timeout=timeout,
                      **kwarg)

    @classmethod
    def unused_tcp_port(cls):
        with contextlib.closing(socket.socket()) as sock:
            sock.bind(('localhost', 0))
            return sock.getsockname()[1]
Пример #6
0
 def run(self):
     self._server = LocalDevServer(
         self._app_object, self._config, self._host, self._port)
     self._server_ready.set()
     self._server.serve_forever()
Пример #7
0
def run_local_server(app_obj):
    # type: (Chalice) -> None
    from chalice.local import LocalDevServer
    server = LocalDevServer(app_obj)
    server.serve_forever()