From 91b2becdff47bbcd16e432fd8fca910496b1961c Mon Sep 17 00:00:00 2001 From: Niall Egan Date: Tue, 14 Aug 2018 14:30:24 +0100 Subject: [PATCH 1/3] don't send empty logs --- aimmo-game/service.py | 12 +++++------ aimmo-game/tests/test_socketio.py | 33 ++++++++++++++++++++++++++++--- 2 files changed, 36 insertions(+), 9 deletions(-) diff --git a/aimmo-game/service.py b/aimmo-game/service.py index 48fd86ae6..4f4bd6c5b 100644 --- a/aimmo-game/service.py +++ b/aimmo-game/service.py @@ -74,11 +74,12 @@ def remove_session_id_from_mappings(sid, def send_logs(session_id_to_avatar_id, logs_provider): for sid, avatar_id in session_id_to_avatar_id.iteritems(): avatar_logs = logs_provider.get_user_logs(avatar_id) - socketio_server.emit( - 'log', - avatar_logs, - room=sid, - ) + if avatar_logs is not None and avatar_logs != '': + socketio_server.emit( + 'log', + avatar_logs, + room=sid, + ) def send_game_state(session_id_to_avatar_id): @@ -97,7 +98,6 @@ def send_updates(session_id_to_avatar_id=_default_session_id_to_avatar_id_mappin send_logs(session_id_to_avatar_id, logs_provider) - def get_game_state(state_provider=_default_state_provider): with state_provider as game_state: world_map = game_state.world_map diff --git a/aimmo-game/tests/test_socketio.py b/aimmo-game/tests/test_socketio.py index 2e6dde899..c234695f3 100644 --- a/aimmo-game/tests/test_socketio.py +++ b/aimmo-game/tests/test_socketio.py @@ -62,15 +62,39 @@ def test_no_match_session_id_to_avatar_id_mapping(self, mocked_socketio, def test_send_updates_for_one_user(self, mocked_socketio, mocked_game_state): self.mocked_mappings[self.sid] = 1 + self.mocked_logs_provider.set_user_logs(self.mocked_mappings[self.sid], 'Logs one') service.send_updates(session_id_to_avatar_id=self.mocked_mappings, logs_provider=self.mocked_logs_provider) game_state_call = mock.call('game-state', {'foo': 'bar'}, room=self.sid) - log_call = mock.call('log', None, room=self.sid) + log_call = mock.call('log', 'Logs one', room=self.sid) mocked_socketio.emit.assert_has_calls([game_state_call, log_call], any_order=True) + @mock.patch('service.get_game_state', return_value={'foo': 'bar'}) + @mock.patch('service.socketio_server') + def test_no_logs_not_emitted(self, mocked_socketio, + mocked_game_state): + """ If there are no logs for an avatar, no logs should be emitted. """ + self.mocked_mappings[self.sid] = 1 + service.send_updates(session_id_to_avatar_id=self.mocked_mappings, + logs_provider=self.mocked_logs_provider) + + mocked_socketio.emit.assert_called_once_with('game-state', {'foo': 'bar'}, room=self.sid) + + @mock.patch('service.get_game_state', return_value={'foo': 'bar'}) + @mock.patch('service.socketio_server') + def test_empty_logs_not_emitted(self, mocked_socketio, + mocked_game_state): + """ If the logs are an empty sting, no logs should be emitted. """ + self.mocked_mappings[self.sid] = 1 + self.mocked_logs_provider.set_user_logs(self.mocked_mappings[self.sid], '') + service.send_updates(session_id_to_avatar_id=self.mocked_mappings, + logs_provider=self.mocked_logs_provider) + + mocked_socketio.emit.assert_called_once_with('game-state', {'foo': 'bar'}, room=self.sid) + @mock.patch('service.get_game_state', return_value={'foo': 'bar'}) @mock.patch('service.socketio_server') def test_send_updates_for_multiple_users(self, mocked_socketio, @@ -78,6 +102,9 @@ def test_send_updates_for_multiple_users(self, mocked_socketio, self.mocked_mappings[self.sid] = 1 self.mocked_mappings['differentsid'] = 2 + self.mocked_logs_provider.set_user_logs(self.mocked_mappings[self.sid], 'Logs one') + self.mocked_logs_provider.set_user_logs(self.mocked_mappings['differentsid'], 'Logs two') + service.send_updates(session_id_to_avatar_id=self.mocked_mappings, logs_provider=self.mocked_logs_provider) @@ -90,11 +117,11 @@ def test_send_updates_for_multiple_users(self, mocked_socketio, room='differentsid') user_one_log_call = mock.call('log', - None, + 'Logs one', room=self.sid) user_two_log_call = mock.call('log', - None, + 'Logs two', room='differentsid') mocked_socketio.emit.assert_has_calls([user_one_game_state_call, From 4b6d13bd1bfb893e375ffbce318c6cc100899da6 Mon Sep 17 00:00:00 2001 From: Niall Egan Date: Tue, 14 Aug 2018 16:34:15 +0100 Subject: [PATCH 2/3] PEP8 fix --- aimmo-game/tests/test_socketio.py | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/aimmo-game/tests/test_socketio.py b/aimmo-game/tests/test_socketio.py index c234695f3..585dce1b7 100644 --- a/aimmo-game/tests/test_socketio.py +++ b/aimmo-game/tests/test_socketio.py @@ -22,8 +22,7 @@ def setUp(self): @mock.patch('service.get_game_state', return_value={'foo': 'bar'}) @mock.patch('service.socketio_server') - def test_socketio_emit_called(self, mocked_socketio, - mocked_game_state): + def test_socketio_emit_called(self, mocked_socketio, mocked_game_state): service.world_update_on_connect(self.sid, self.environ, session_id_to_avatar_id=self.mocked_mappings) @@ -31,8 +30,7 @@ def test_socketio_emit_called(self, mocked_socketio, @mock.patch('service.get_game_state', return_value={'foo': 'bar'}) @mock.patch('service.socketio_server') - def test_matched_session_id_to_avatar_id_mapping(self, mocked_socketio, - mocked_game_state): + def test_matched_session_id_to_avatar_id_mapping(self, mocked_socketio, mocked_game_state): self.assertEqual(len(self.mocked_mappings), 0) service.world_update_on_connect(self.sid, self.environ, @@ -44,8 +42,7 @@ def test_matched_session_id_to_avatar_id_mapping(self, mocked_socketio, @mock.patch('service.get_game_state', return_value={'foo': 'bar'}) @mock.patch('service.socketio_server') - def test_no_match_session_id_to_avatar_id_mapping(self, mocked_socketio, - mocked_game_state): + def test_no_match_session_id_to_avatar_id_mapping(self, mocked_socketio, mocked_game_state): self.environ['QUERY_STRING'] = 'corrupted!@$%string123' self.assertEqual(len(self.mocked_mappings), 0) @@ -59,8 +56,7 @@ def test_no_match_session_id_to_avatar_id_mapping(self, mocked_socketio, @mock.patch('service.get_game_state', return_value={'foo': 'bar'}) @mock.patch('service.socketio_server') - def test_send_updates_for_one_user(self, mocked_socketio, - mocked_game_state): + def test_send_updates_for_one_user(self, mocked_socketio, mocked_game_state): self.mocked_mappings[self.sid] = 1 self.mocked_logs_provider.set_user_logs(self.mocked_mappings[self.sid], 'Logs one') @@ -74,8 +70,7 @@ def test_send_updates_for_one_user(self, mocked_socketio, @mock.patch('service.get_game_state', return_value={'foo': 'bar'}) @mock.patch('service.socketio_server') - def test_no_logs_not_emitted(self, mocked_socketio, - mocked_game_state): + def test_no_logs_not_emitted(self, mocked_socketio, mocked_game_state): """ If there are no logs for an avatar, no logs should be emitted. """ self.mocked_mappings[self.sid] = 1 service.send_updates(session_id_to_avatar_id=self.mocked_mappings, @@ -85,8 +80,7 @@ def test_no_logs_not_emitted(self, mocked_socketio, @mock.patch('service.get_game_state', return_value={'foo': 'bar'}) @mock.patch('service.socketio_server') - def test_empty_logs_not_emitted(self, mocked_socketio, - mocked_game_state): + def test_empty_logs_not_emitted(self, mocked_socketio, mocked_game_state): """ If the logs are an empty sting, no logs should be emitted. """ self.mocked_mappings[self.sid] = 1 self.mocked_logs_provider.set_user_logs(self.mocked_mappings[self.sid], '') @@ -97,8 +91,7 @@ def test_empty_logs_not_emitted(self, mocked_socketio, @mock.patch('service.get_game_state', return_value={'foo': 'bar'}) @mock.patch('service.socketio_server') - def test_send_updates_for_multiple_users(self, mocked_socketio, - mocked_game_state): + def test_send_updates_for_multiple_users(self, mocked_socketio, mocked_game_state): self.mocked_mappings[self.sid] = 1 self.mocked_mappings['differentsid'] = 2 From 470d189eadab2795c89833f0dc50d957b0d8e554 Mon Sep 17 00:00:00 2001 From: Niall Egan Date: Wed, 15 Aug 2018 09:52:05 +0100 Subject: [PATCH 3/3] function name --- aimmo-game/service.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/aimmo-game/service.py b/aimmo-game/service.py index 4f4bd6c5b..b8f95a038 100644 --- a/aimmo-game/service.py +++ b/aimmo-game/service.py @@ -72,9 +72,12 @@ def remove_session_id_from_mappings(sid, def send_logs(session_id_to_avatar_id, logs_provider): + def should_send_logs(logs): + return logs is not None and logs != '' + for sid, avatar_id in session_id_to_avatar_id.iteritems(): avatar_logs = logs_provider.get_user_logs(avatar_id) - if avatar_logs is not None and avatar_logs != '': + if should_send_logs(avatar_logs): socketio_server.emit( 'log', avatar_logs,