From 1ebe1151fc0a13a954e220f69ea71a4354e0d6bc Mon Sep 17 00:00:00 2001 From: Stein Magnus Jodal Date: Thu, 17 Jul 2014 01:14:06 +0200 Subject: [PATCH] http: Make event emitting testable --- mopidy/http/actor.py | 12 ++++++++---- tests/http/test_events.py | 18 ++++++------------ 2 files changed, 14 insertions(+), 16 deletions(-) diff --git a/mopidy/http/actor.py b/mopidy/http/actor.py index dc154538..a477d939 100644 --- a/mopidy/http/actor.py +++ b/mopidy/http/actor.py @@ -74,10 +74,14 @@ class HttpFrontend(pykka.ThreadingActor, CoreListener): self.server.stop() def on_event(self, name, **data): - event = data - event['event'] = name - message = json.dumps(event, cls=models.ModelJSONEncoder) - handlers.WebSocketHandler.broadcast(message) + on_event(name, **data) + + +def on_event(name, **data): + event = data + event['event'] = name + message = json.dumps(event, cls=models.ModelJSONEncoder) + handlers.WebSocketHandler.broadcast(message) class HttpServer(threading.Thread): diff --git a/tests/http/test_events.py b/tests/http/test_events.py index e86d2b2e..d03778a6 100644 --- a/tests/http/test_events.py +++ b/tests/http/test_events.py @@ -10,20 +10,12 @@ from mopidy.http import actor @mock.patch('mopidy.http.handlers.WebSocketHandler.broadcast') class HttpEventsTest(unittest.TestCase): - def setUp(self): - config = { - 'http': { - 'hostname': '127.0.0.1', - 'port': 6680, - 'static_dir': None, - 'zeroconf': '', - } - } - self.http = actor.HttpFrontend(config=config, core=mock.Mock()) def test_track_playback_paused_is_broadcasted(self, broadcast): broadcast.reset_mock() - self.http.on_event('track_playback_paused', foo='bar') + + actor.on_event('track_playback_paused', foo='bar') + self.assertDictEqual( json.loads(str(broadcast.call_args[0][0])), { 'event': 'track_playback_paused', @@ -32,7 +24,9 @@ class HttpEventsTest(unittest.TestCase): def test_track_playback_resumed_is_broadcasted(self, broadcast): broadcast.reset_mock() - self.http.on_event('track_playback_resumed', foo='bar') + + actor.on_event('track_playback_resumed', foo='bar') + self.assertDictEqual( json.loads(str(broadcast.call_args[0][0])), { 'event': 'track_playback_resumed',