예제 #1
0
 def __init__(self):
     """Fire up the DDP server."""
     self.server_port = 8000
     kwargs = {}
     if self.ssl_certfile_path:
         kwargs['certfile'] = self.ssl_certfile_path
     if self.ssl_keyfile_path:
         kwargs['keyfile'] = self.ssl_keyfile_path
     self.scheme = 'https' if kwargs else 'http'
     for server_port in self.server_port_range:
         self.server = DDPLauncher(debug=True)
         self.server.add_web_servers(
             [
                 (self.server_addr, server_port),
             ],
             **kwargs
         )
         try:
             self.server.start()
             self.server_port = server_port
             return  # server started
         except socket.error as err:
             if err.errno != errno.EADDRINUSE:
                 raise  # error wasn't "address in use", re-raise.
             continue  # port in use, try next port.
     raise RuntimeError('Failed to start DDP server.')
예제 #2
0
class DDPTestServer(object):

    """DDP server with auto start and stop."""

    server_addr = '127.0.0.1'
    server_port_range = range(8000, 8080)
    ssl_certfile_path = None
    ssl_keyfile_path = None

    def __init__(self):
        """Fire up the DDP server."""
        self.server_port = 8000
        kwargs = {}
        if self.ssl_certfile_path:
            kwargs['certfile'] = self.ssl_certfile_path
        if self.ssl_keyfile_path:
            kwargs['keyfile'] = self.ssl_keyfile_path
        self.scheme = 'https' if kwargs else 'http'
        for server_port in self.server_port_range:
            self.server = DDPLauncher(debug=True)
            self.server.add_web_servers(
                [
                    (self.server_addr, server_port),
                ],
                **kwargs
            )
            try:
                self.server.start()
                self.server_port = server_port
                return  # server started
            except socket.error as err:
                if err.errno != errno.EADDRINUSE:
                    raise  # error wasn't "address in use", re-raise.
                continue  # port in use, try next port.
        raise RuntimeError('Failed to start DDP server.')

    def stop(self):
        """Shut down the DDP server."""
        self.server.stop()

    def websocket(self, url, *args, **kwargs):
        """Return a WebSocketClient for the given URL."""
        return WebSocketClient(
            self.url(url).replace('http', 'ws'), *args, **kwargs
        )

    def sockjs(self, url, *args, **kwargs):
        """Return a SockJSClient for the given URL."""
        return SockJSClient(
            self.url(url).replace('http', 'ws'), *args, **kwargs
        )

    def url(self, path):
        """Return full URL for given path."""
        return urljoin(
            '%s://%s:%d' % (self.scheme, self.server_addr, self.server_port),
            path,
        )
예제 #3
0
 def __init__(self):
     """Fire up the DDP server."""
     self.server_port = 8000
     kwargs = {}
     if self.ssl_certfile_path:
         kwargs['certfile'] = self.ssl_certfile_path
     if self.ssl_keyfile_path:
         kwargs['keyfile'] = self.ssl_keyfile_path
     self.scheme = 'https' if kwargs else 'http'
     for server_port in self.server_port_range:
         self.server = DDPLauncher(debug=True)
         self.server.add_web_servers([
             (self.server_addr, server_port),
         ], **kwargs)
         try:
             self.server.start()
             self.server_port = server_port
             return  # server started
         except socket.error as err:
             if err.errno != errno.EADDRINUSE:
                 raise  # error wasn't "address in use", re-raise.
             continue  # port in use, try next port.
     raise RuntimeError('Failed to start DDP server.')
예제 #4
0
class DDPTestServer(object):
    """DDP server with auto start and stop."""

    server_addr = '127.0.0.1'
    server_port_range = range(8000, 8080)
    ssl_certfile_path = None
    ssl_keyfile_path = None

    def __init__(self):
        """Fire up the DDP server."""
        self.server_port = 8000
        kwargs = {}
        if self.ssl_certfile_path:
            kwargs['certfile'] = self.ssl_certfile_path
        if self.ssl_keyfile_path:
            kwargs['keyfile'] = self.ssl_keyfile_path
        self.scheme = 'https' if kwargs else 'http'
        for server_port in self.server_port_range:
            self.server = DDPLauncher(debug=True)
            self.server.add_web_servers([
                (self.server_addr, server_port),
            ], **kwargs)
            try:
                self.server.start()
                self.server_port = server_port
                return  # server started
            except socket.error as err:
                if err.errno != errno.EADDRINUSE:
                    raise  # error wasn't "address in use", re-raise.
                continue  # port in use, try next port.
        raise RuntimeError('Failed to start DDP server.')

    def stop(self):
        """Shut down the DDP server."""
        self.server.stop()

    def websocket(self, url, *args, **kwargs):
        """Return a WebSocketClient for the given URL."""
        return WebSocketClient(
            self.url(url).replace('http', 'ws'), *args, **kwargs)

    def sockjs(self, url, *args, **kwargs):
        """Return a SockJSClient for the given URL."""
        return SockJSClient(
            self.url(url).replace('http', 'ws'), *args, **kwargs)

    def url(self, path):
        """Return full URL for given path."""
        return urljoin(
            '%s://%s:%d' % (self.scheme, self.server_addr, self.server_port),
            path,
        )
예제 #5
0
class DDPServerTestCase(TestCase):

    """Test case that starts a DDP server."""

    server_addr = '127.0.0.1'
    server_port_range = range(8000, 8080)
    ssl_certfile_path = None
    ssl_keyfile_path = None

    def setUp(self):
        """Fire up the DDP server."""
        self.server_port = 8000
        kwargs = {}
        if self.ssl_certfile_path:
            kwargs['certfile'] = self.ssl_certfile_path
        if self.ssl_keyfile_path:
            kwargs['keyfile'] = self.ssl_keyfile_path
        self.scheme = 'https' if kwargs else 'http'
        for server_port in self.server_port_range:
            self.server = DDPLauncher(debug=True)
            self.server.add_web_servers(
                [
                    (self.server_addr, server_port),
                ],
                **kwargs
            )
            try:
                self.server.start()
                self.server_port = server_port
                return  # server started
            except socket.error as err:
                if err.errno != errno.EADDRINUSE:
                    raise  # error wasn't "address in use", re-raise.
                continue  # port in use, try next port.
        raise RuntimeError('Failed to start DDP server.')

    def tearDown(self):
        """Shut down the DDP server."""
        self.server.stop()

    def url(self, path):
        """Return full URL for given path."""
        return urljoin(
            '%s://%s:%d' % (self.scheme, self.server_addr, self.server_port),
            path,
        )
예제 #6
0
class DDPServerTestCase(TestCase):
    """Test case that starts a DDP server."""

    server_addr = '127.0.0.1'
    server_port_range = range(8000, 8080)
    ssl_certfile_path = None
    ssl_keyfile_path = None

    def setUp(self):
        """Fire up the DDP server."""
        self.server_port = 8000
        kwargs = {}
        if self.ssl_certfile_path:
            kwargs['certfile'] = self.ssl_certfile_path
        if self.ssl_keyfile_path:
            kwargs['keyfile'] = self.ssl_keyfile_path
        self.scheme = 'https' if kwargs else 'http'
        for server_port in self.server_port_range:
            self.server = DDPLauncher(debug=True)
            self.server.add_web_servers([
                (self.server_addr, server_port),
            ], **kwargs)
            try:
                self.server.start()
                self.server_port = server_port
                return  # server started
            except socket.error as err:
                if err.errno != errno.EADDRINUSE:
                    raise  # error wasn't "address in use", re-raise.
                continue  # port in use, try next port.
        raise RuntimeError('Failed to start DDP server.')

    def tearDown(self):
        """Shut down the DDP server."""
        self.server.stop()

    def url(self, path):
        """Return full URL for given path."""
        return urljoin(
            '%s://%s:%d' % (self.scheme, self.server_addr, self.server_port),
            path,
        )