Exemple #1
0
class TestClient(unittest.TestCase):

    def setUp(self):
        self.app = MagicMock()
        self.client = Client(self.app, 'localhost', 5000)

    def test_send(self):
        message = "test"
        with patch("socket.socket.send") as mock:
            self.client.send(message)
            self.assertEqual(mock.call_count, 1)
            self.assertEqual(mock.call_args[0][0], message)

    def test_connect(self):
        self.client._host = "localhost"
        self.client._port = 5000
        with patch("socket.socket.connect") as mock:
            self.client.connect()
            self.assertEqual(mock.call_count, 1)
            self.assertEqual(mock.call_args[0][0], (self.client._host, self.client._port))

    def test_process_users_list(self):
        user1 = "user1"
        user2 = "user2"
        history = "history"
        data = "<users>" + user1 + "," + user2 + "<history>" + history
        self.client.process_users_list(data)
        self.assertEqual(self.client.user_list, [user1, user2])
        self.assertEqual(self.app.show_users.call_count, 1)
        self.assertEqual(self.app.display.call_count, 2)
        self.assertEqual(self.app.display.call_args_list[0][0], (history,))

    def test_process_add_user(self):
        user = "******"
        data = "<users-add>" + user
        self.client.process_add_user(data)
        self.assertTrue(user in self.client.user_list)
        self.assertEqual(self.app.show_users.call_count, 1)
        self.assertEqual(self.app.show_users.call_args[0][0], self.client.user_list)
        self.assertEqual(self.app.display.call_count, 1)
        self.assertTrue(user in self.app.display.call_args[0][0])

    def test_process_remove_user(self):
        user = "******"
        self.client.user_list.append(user)
        data = "<users-remove>" + user
        self.client.process_remove_user(data)
        self.assertTrue(user not in self.client.user_list)
        self.assertEqual(self.app.show_users.call_count, 1)
        self.assertEqual(self.app.show_users.call_args[0][0], self.client.user_list)
        self.assertEqual(self.app.display.call_count, 1)
        self.assertTrue(user in self.app.display.call_args[0][0])

    def test_process_data_users_list(self):
        data = "<users>users<history>history"
        with patch("client.client.Client.process_users_list") as mock:
            self.client.process_data(data)
            self.assertEqual(mock.call_count, 1)
            self.assertEqual(mock.call_args[0][0], data)

    def test_process_data_new_user(self):
        data = "<users-add>user"
        with patch("client.client.Client.process_add_user") as mock:
            self.client.process_data(data)
            self.assertEqual(mock.call_count, 1)
            self.assertEqual(mock.call_args[0][0], data)

    def test_process_data_remove_user(self):
        data = "<users-remove>user"
        with patch("client.client.Client.process_remove_user") as mock:
            self.client.process_data(data)
            self.assertEqual(mock.call_count, 1)
            self.assertEqual(mock.call_args[0][0], data)

    def test_process_data_message(self):
        data = "message"
        self.client.process_data(data)
        self.assertEqual(self.app.display.call_count, 1)
        self.assertEqual(self.app.display.call_args[0][0], data)