def test_send(self, SenderMockWebSocket, ReceiverMockWebSocket): # Set up some clients sender = Client(SenderMockWebSocket) receiver = Client(ReceiverMockWebSocket) channel = Channel("test_channel") channel.add_client(sender) channel.add_client(receiver) self.assertTrue(len(channel.clients) == 2) # It sends a message to receiver sample_message = Message( receiver_guid = receiver.address, type = "announce", data = "data" ) asyncio.get_event_loop().run_until_complete( channel.send(sender, sample_message) ) # It called send ReceiverMockWebSocket.send.assert_called() # It sent the right message sent_message = Message.from_json(ReceiverMockWebSocket.send.call_args[0][0]) sent_data = sent_message.data sent_type = sent_message.type self.assertEqual(sent_data, sample_message.data) self.assertEqual(sent_type, sample_message.type) # It set the "sender_guid" sent_from = sent_message.sender_guid self.assertEqual(sent_from, sender.address)