def test_connect_timeout_error_without_retry(self): """Test that the _connect function is not being retried if retry_on_timeout is set to False""" conn = Connection(retry_on_timeout=False) conn._connect = mock.Mock() conn._connect.side_effect = socket.timeout with pytest.raises(TimeoutError) as e: conn.connect() assert conn._connect.call_count == 1 assert str(e.value) == "Timeout connecting to server" self.clear(conn)
def test_retry_connect_on_timeout_error(self): """Test that the _connect function is retried in case of a timeout""" conn = Connection(retry_on_timeout=True, retry=Retry(NoBackoff(), 3)) origin_connect = conn._connect conn._connect = mock.Mock() def mock_connect(): # connect only on the last retry if conn._connect.call_count <= 2: raise socket.timeout else: return origin_connect() conn._connect.side_effect = mock_connect conn.connect() assert conn._connect.call_count == 3 self.clear(conn)