def on_deleted(self, event): """ Event Handler when a file is deleted """ key = 'filetree:deleted_file' data = {'filepath': event.src_path} bmsg = BroadcastMessage(key=key, data=data) BroadcastManager.broadcast(bmsg)
def on_moved(self, event): """ Event Handler when a file is moved """ key = 'filetree:moved_file' data = { 'src_filepath': event.src_path, 'dest_filepath': event.dest_path } bmsg = BroadcastMessage(key=key, data=data) BroadcastManager.broadcast(bmsg)
def on_modified(self, event): """ Event handler when a file is modified. """ key = 'filesystem:file_modified' data = { 'filepath': event.src_path, 'is_directory': event.is_directory, 'dirpath': os.path.dirname(event.src_path) } bmsg = BroadcastMessage(key=key, data=data) BroadcastManager.broadcast(bmsg)
def test_add_client(self): request = mock.Mock() client1 = BroadcastHandler(self.get_app(), request) client2 = BroadcastHandler(self.get_app(), request) invalid_client = BaseHandler(self.get_app(), request) self.assertEqual(BroadcastManager._clients, set()) BroadcastManager.add_client(client1) self.assertEqual(BroadcastManager._clients, set([client1])) BroadcastManager.add_client(client2) self.assertEqual(BroadcastManager._clients, set([client1, client2])) with self.assertRaises(TypeError): BroadcastManager.add_client(invalid_client)
def test_broadcast(self, m): request = mock.Mock() client1 = BroadcastHandler(self.get_app(), request) client2 = BroadcastHandler(self.get_app(), request) msg = tornado.escape.json_encode({'key': 'test:test_msg', 'data': {}}) bmsg = BroadcastMessage.create_from_string(msg) BroadcastManager.broadcast(bmsg) self.assertFalse(m.called) m.reset_mock() BroadcastManager.add_client(client1) BroadcastManager.broadcast(bmsg) self.assertEqual(m.call_count, 1) m.assert_called_with(msg) m.reset_mock() BroadcastManager.add_client(client2) BroadcastManager.broadcast(bmsg) self.assertEqual(m.call_count, 2) m.assert_called_with(msg) m.reset_mock() invalid_msg = msg with self.assertRaises(TypeError): BroadcastManager.broadcast(invalid_msg) self.assertFalse(m.called)
def test_remove_client(self): request = mock.Mock() client1 = BroadcastHandler(self.get_app(), request) client2 = BroadcastHandler(self.get_app(), request) client3 = BroadcastHandler(self.get_app(), request) BroadcastManager.add_client(client1) BroadcastManager.add_client(client2) BroadcastManager.remove_client(client3) self.assertEqual(BroadcastManager._clients, set([client1, client2])) BroadcastManager.remove_client(client1) self.assertEqual(BroadcastManager._clients, set([client2])) BroadcastManager.remove_client(client2) self.assertEqual(BroadcastManager._clients, set()) BroadcastManager.remove_client(client2) self.assertEqual(BroadcastManager._clients, set())