def test_broadcast(self, SenderMockWebSocket, Receiver1MockWebSocket, Receiver2MockWebSocket): # Set up some clients sender = Client(SenderMockWebSocket) receiver1 = Client(Receiver1MockWebSocket) receiver2 = Client(Receiver2MockWebSocket) channel = Channel("test_channel") channel.add_client(sender) channel.add_client(receiver1) channel.add_client(receiver2) self.assertTrue(len(channel.clients) == 3) # It sends a message to each client sample_message = Message( type = "announce", data= "data" ) asyncio.get_event_loop().run_until_complete( channel.broadcast(sender, sample_message) ) # It called send Receiver1MockWebSocket.send.assert_called() Receiver2MockWebSocket.send.assert_called() # It sent the right message sent_message = Message.from_json(Receiver1MockWebSocket.send.call_args[0][0]) sent_data = sent_message.data sent_type = sent_message.type sent_channel_id = sent_message.channel_id self.assertEqual(sent_data, sample_message.data) self.assertEqual(sent_type, sample_message.type) self.assertEqual(sent_channel_id, channel.id) # It set the "sender_guid" sent_from = sent_message.sender_guid self.assertEqual(sent_from, sender.address)