From bd6a0e2acbaff83822d35025bdbf8984d02fb88b Mon Sep 17 00:00:00 2001 From: Miguel Grinberg Date: Wed, 25 Aug 2021 00:07:43 +0100 Subject: [PATCH] No need to push a new app context in the test client (Fixes #1669) --- src/flask_socketio/test_client.py | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/src/flask_socketio/test_client.py b/src/flask_socketio/test_client.py index f0f5b8f8..3708e7a6 100644 --- a/src/flask_socketio/test_client.py +++ b/src/flask_socketio/test_client.py @@ -116,9 +116,7 @@ def connect(self, namespace=None, query_string=None, headers=None, self.flask_test_client.cookie_jar.inject_wsgi(environ) self.socketio.server._handle_eio_connect(self.eio_sid, environ) pkt = packet.Packet(packet.CONNECT, auth, namespace=namespace) - with self.app.app_context(): - self.socketio.server._handle_eio_message(self.eio_sid, - pkt.encode()) + self.socketio.server._handle_eio_message(self.eio_sid, pkt.encode()) sid = self.socketio.server.manager.sid_from_eio_sid(self.eio_sid, namespace) if sid: @@ -133,9 +131,7 @@ def disconnect(self, namespace=None): if not self.is_connected(namespace): raise RuntimeError('not connected') pkt = packet.Packet(packet.DISCONNECT, namespace=namespace) - with self.app.app_context(): - self.socketio.server._handle_eio_message(self.eio_sid, - pkt.encode()) + self.socketio.server._handle_eio_message(self.eio_sid, pkt.encode()) del self.connected[namespace or '/'] def emit(self, event, *args, **kwargs): @@ -163,15 +159,12 @@ def emit(self, event, *args, **kwargs): id = self.callback_counter pkt = packet.Packet(packet.EVENT, data=[event] + list(args), namespace=namespace, id=id) - with self.app.app_context(): - encoded_pkt = pkt.encode() - if isinstance(encoded_pkt, list): - for epkt in encoded_pkt: - self.socketio.server._handle_eio_message(self.eio_sid, - epkt) - else: - self.socketio.server._handle_eio_message(self.eio_sid, - encoded_pkt) + encoded_pkt = pkt.encode() + if isinstance(encoded_pkt, list): + for epkt in encoded_pkt: + self.socketio.server._handle_eio_message(self.eio_sid, epkt) + else: + self.socketio.server._handle_eio_message(self.eio_sid, encoded_pkt) ack = self.acks.pop(self.eio_sid, None) if ack is not None: return ack['args'][0] if len(ack['args']) == 1 \