Skip to content

Commit

Permalink
Better handling of message_queue argument (Fixes #1130)
Browse files Browse the repository at this point in the history
  • Loading branch information
miguelgrinberg committed May 22, 2022
1 parent f7ca69a commit 2afebb9
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 2 deletions.
4 changes: 2 additions & 2 deletions src/flask_socketio/__init__.py
Expand Up @@ -197,8 +197,8 @@ def init_app(self, app, **kwargs):
self.manage_session = self.server_options.pop('manage_session',
self.manage_session)

if 'client_manager' not in self.server_options:
url = self.server_options.pop('message_queue', None)
if 'client_manager' not in kwargs:
url = self.server_options.get('message_queue', None)
channel = self.server_options.pop('channel', 'flask-socketio')
write_only = app is None
if url:
Expand Down
19 changes: 19 additions & 0 deletions test_socketio.py
Expand Up @@ -345,6 +345,25 @@ def test_disconnect_namespace(self):
client.disconnect('/test')
self.assertEqual(disconnected, '/test')

def test_message_queue_options(self):
app = Flask(__name__)
socketio = SocketIO(app, message_queue='redis://')
self.assertFalse(socketio.server_options['client_manager'].write_only)

app = Flask(__name__)
socketio = SocketIO(app)
socketio.init_app(app, message_queue='redis://')
self.assertFalse(socketio.server_options['client_manager'].write_only)

app = Flask(__name__)
socketio = SocketIO(message_queue='redis://')
self.assertTrue(socketio.server_options['client_manager'].write_only)

app = Flask(__name__)
socketio = SocketIO()
socketio.init_app(None, message_queue='redis://')
self.assertTrue(socketio.server_options['client_manager'].write_only)

def test_send(self):
client = socketio.test_client(app, auth={'foo': 'bar'})
client.get_received()
Expand Down
1 change: 1 addition & 0 deletions tox.ini
Expand Up @@ -18,6 +18,7 @@ commands=
deps=
pytest
pytest-cov
redis

[testenv:flake8]
commands=
Expand Down

0 comments on commit 2afebb9

Please sign in to comment.