def test_zero_timeout(self): # Rather than pass '0' through as a timeout to # socket.create_connection, create_tcp_connection should raise # socket.error. This is because the socket library treats '0' as an # indicator to create a non-blocking socket. from kazoo.handlers.utils import create_tcp_connection, socket, time # Simulate no time passing between calls to check the current time. with patch.object(time, 'time', return_value=time.time()): with self.assertRaises(socket.error): create_tcp_connection(socket, ('127.0.0.1', 2181), timeout=0)
def test_slow_connect(self): # Currently, create_tcp_connection will raise a socket timeout if it # takes longer than the specified "timeout" to create a connection. # In the future, "timeout" might affect only the created socket and not # the time it takes to create it. from kazoo.handlers.utils import create_tcp_connection, socket, time # Simulate a second passing between calls to check the current time. with patch.object(time, 'time', side_effect=range(10)): with self.assertRaises(socket.error): create_tcp_connection(socket, ('127.0.0.1', 2181), timeout=0.5)
def test_timeout_arg(self): from kazoo.handlers import utils from kazoo.handlers.utils import create_tcp_connection, socket, time with patch.object(socket, 'create_connection') as create_connection: with patch.object(utils, '_set_default_tcpsock_options'): # Ensure a gap between calls to time.time() does not result in # create_connection being called with a negative timeout # argument. with patch.object(time, 'time', side_effect=range(10)): create_tcp_connection(socket, ('127.0.0.1', 2181), timeout=1.5) for call_args in create_connection.call_args_list: timeout = call_args[0][1] assert timeout >= 0, 'socket timeout must be nonnegative'
def create_connection(self, *args, **kwargs): return utils.create_tcp_connection(socket, *args, **kwargs)
def test_negative_timeout(self): from kazoo.handlers.utils import create_tcp_connection, socket with self.assertRaises(socket.error): create_tcp_connection(socket, ('127.0.0.1', 2181), timeout=-1)