http: Make event emitting testable

This commit is contained in:
Stein Magnus Jodal 2014-07-17 01:14:06 +02:00
parent 3fac0cb8de
commit 1ebe1151fc
2 changed files with 14 additions and 16 deletions

View File

@ -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):

View File

@ -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',