def test_pm(self): room = Chatroom("../config/test_config/chat.yaml") sender = Mwsc() reciever = Mwsc() bystander = Mwsc() test_helper.sync(room.handle_connection(sender, "sender")) test_helper.sync(room.handle_connection(reciever, "reciever")) test_helper.sync(room.handle_connection(bystander, "bystander")) test_helper.sync( room.command_handler.handle_command("!pm reciever MESSAGE BODY", room.connected[sender], room) ) expected_reciver = room.get_outgoing_pm("MESSAGE BODY", "sender") expected_sender = room.get_pm_receipt("MESSAGE BODY", "reciever") self.assertIn(expected_reciver, reciever.incoming[-1]) self.assertIn("PRIVATE", reciever.incoming[-1]) self.assertIn(expected_sender, sender.incoming[-1]) self.assertIn("PRIVATE", sender.incoming[-1]) self.assertNotIn(expected_sender, bystander.incoming[-1]) self.assertNotIn("PRIVATE", bystander.incoming[-1])
def test_handle_message(self): room = Chatroom("../config/test_config/chat.yaml") fake_websocket = Mwsc() fake_websocket2 = Mwsc() self.connect_fake_client(fake_websocket, room) self.connect_fake_client(fake_websocket2, room) asyncio.get_event_loop().run_until_complete( room.handle_message(fake_websocket, "Fake message")) self.assertIn(fake_websocket, room.connected) self.assertEqual(room.connected[fake_websocket].websocket, fake_websocket) self.assertTrue( len(room.connected[fake_websocket2].websocket.incoming) > 1)
def test_help(self): handler = CommandHandler() room = Chatroom("../config/test_config/chat.yaml") socket = Mwsc() user = User(socket, "Test") test_helper.sync(handler.handle_command("!help", user, room)) self.assertTrue("!help" in user.websocket.incoming[-1])
def test_send_to_all(self): room = Chatroom("../config/test_config/chat.yaml") fake_websocket = Mwsc() fake_websocket2 = Mwsc() self.connect_fake_client(fake_websocket, room) self.connect_fake_client(fake_websocket2, room) resp = Response("TO ALL") asyncio.get_event_loop().run_until_complete( room.send_to_all(resp, fake_websocket2)) self.assertEqual(resp.json(), room.connected[fake_websocket].websocket.incoming[-1]) self.assertNotEqual( resp.json(), room.connected[fake_websocket2].websocket.incoming[-1])
def test_create_user(self): name = "Rafi" fake_socket = Mwsc() user = User(fake_socket, name) self.assertIsNotNone(user.websocket) self.assertIsNotNone(user.name) self.assertIsNotNone(user.connected_at) self.assertEqual(user.name, name)
def test_handle_disconnect(self): room = Chatroom("../config/test_config/chat.yaml") fake_websocket = Mwsc() self.assertEqual(len(room.connected), 0) self.connect_fake_client(fake_websocket, room) self.assertEqual(len(room.connected), 1) asyncio.get_event_loop().run_until_complete( room.handle_disconnect(fake_websocket)) self.assertEqual(len(room.connected), 0)
def test_handle_shutdown(self): room = Chatroom("../config/test_config/chat.yaml") fake_websocket = Mwsc() fake_websocket2 = Mwsc() self.connect_fake_client(fake_websocket, room) self.connect_fake_client(fake_websocket2, room) asyncio.get_event_loop().run_until_complete(room.handle_shutdown()) expected = Response(room.get_shutdown_notification(), Origin.SERVER) self.assertIn( str(expected), str(room.connected[fake_websocket].websocket.incoming[-1])) self.assertIn( str(expected), str(room.connected[fake_websocket2].websocket.incoming[-1])) self.assertFalse(room.connected[fake_websocket].websocket.open) self.assertFalse(room.connected[fake_websocket2].websocket.open)
def test_name_change(self): room = Chatroom("../config/test_config/chat.yaml") fake_websocket = Mwsc() fake_websocket2 = Mwsc() self.connect_fake_client(fake_websocket, room, "old_name") self.connect_fake_client(fake_websocket2, room) asyncio.get_event_loop().run_until_complete( room.change_name(fake_websocket, "new_name")) expected = Response( room.get_name_change_notification("old_name", "new_name"), Origin.SERVER) self.assertEqual(expected.json(), room.connected[fake_websocket].websocket.incoming[-1]) self.assertEqual( expected.json(), room.connected[fake_websocket2].websocket.incoming[-1]) self.assertEqual(room.connected[fake_websocket].name, "new_name")
def test_bad_pm(self): room = Chatroom("../config/test_config/chat.yaml") sender = Mwsc() reciever = Mwsc() test_helper.sync(room.handle_connection(sender, "sender")) test_helper.sync(room.handle_connection(reciever, "reciever")) test_helper.sync( room.command_handler.handle_command("!pm", room.connected[sender], room) ) test_helper.sync( room.command_handler.handle_command("!pm test", room.connected[sender], room) ) test_helper.sync( room.command_handler.handle_command("!pm test ", room.connected[sender], room) )
def test_handle_connection(self): room = Chatroom("../config/test_config/chat.yaml") fake_websocket = Mwsc() self.connect_fake_client(fake_websocket, room) self.assertIn(fake_websocket, room.connected) self.assertEqual(room.connected[fake_websocket].websocket, fake_websocket) self.assertTrue( len(room.connected[fake_websocket].websocket.incoming) > 0) self.assertEqual(len(room.connected), 1)