def test_fd_leak(limit_fds): """Servers must not leak file descriptors""" for i in range(limit_fds + 1): server = birdisle.Server() client = server.connect() server.close() client.close()
def main(): server = birdisle.Server() s = socket.socket() s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) s.bind(('127.0.0.1', 6380)) s.listen(5) try: while True: conn, addr = s.accept() with contextlib.closing(conn): server.add_connection(os.dup(conn.fileno())) except KeyboardInterrupt: server.close()
def birdisle_server(): password = config.get_consumer_config().get('REDIS_PASSWORD') server = birdisle.Server(f'requirepass {password}') yield server server.close()
def test_bad_config(): with pytest.raises(RuntimeError): birdisle.Server('not a valid config file')
def test_config_string(): server = birdisle.Server('dbfilename birdisletest.rdb') r = birdisle.redis.StrictRedis(server=server) dbfilename = r.config_get('dbfilename')['dbfilename'] assert dbfilename == 'birdisletest.rdb' server.close()
def server(): server = birdisle.Server() yield server server.close()
def __init__(self, host='localhost', port=6379, db=0, password=None, socket_timeout=None, socket_connect_timeout=None, socket_keepalive=None, socket_keepalive_options=None, connection_pool=None, unix_socket_path=None, encoding='utf-8', encoding_errors='strict', charset=None, errors=None, decode_responses=False, retry_on_timeout=False, ssl=False, ssl_keyfile=None, ssl_certfile=None, ssl_cert_reqs=None, ssl_ca_certs=None, max_connections=None, server=None): if not connection_pool: # Adapted from redis-py if charset is not None: warnings.warn( DeprecationWarning( '"charset" is deprecated. Use "encoding" instead')) encoding = charset if errors is not None: warnings.warn( DeprecationWarning( '"errors" is deprecated. Use "encoding_errors" instead' )) encoding_errors = errors if server is None: server = birdisle.Server() kwargs = { 'db': db, 'password': password, 'socket_timeout': socket_timeout, 'encoding': encoding, 'encoding_errors': encoding_errors, 'decode_responses': decode_responses, 'retry_on_timeout': retry_on_timeout, 'max_connections': max_connections, 'connection_class': LocalSocketConnection, 'server': server } connection_pool = redis.connection.ConnectionPool(**kwargs) super(RedisMixin, self).__init__(host, port, db, password, socket_timeout, socket_connect_timeout, socket_keepalive, socket_keepalive_options, connection_pool, unix_socket_path, encoding, encoding_errors, charset, errors, decode_responses, retry_on_timeout, ssl, ssl_keyfile, ssl_certfile, ssl_cert_reqs, ssl_ca_certs, max_connections)