예제 #1
0
    def test_one_server(self):
        # Add one server
        serv1 = ServerMock(self.hallo)

        serv1.name = "server_list_test"
        self.hallo.add_server(serv1)
        # Send command
        self.function_dispatcher.dispatch(EventMessage(self.server, self.test_chan, self.test_user, "list servers"))
        data = self.server.get_send_data(1, self.test_chan, EventMessage)
        # Check response
        server_list_text = data[0].text.split(":")[1]
        server_list = server_list_text.split("], ")
        assert len(server_list) == 1
        assert serv1.name in server_list[0], "Server name not found in output.\n" \
                                             "Server name: " + serv1.name + "\n" \
                                             "Command output: " + server_list[0]
        assert "type=" + serv1.type in server_list[0], "Server type not found in output.\n" \
                                                       "Server type: " + serv1.type + "\n" \
                                                       "Command output: " + server_list[0]
        assert "state=" + serv1.state in server_list[0], "Server state not found in output.\n" \
                                                         "Server name: " + serv1.state + "\n" \
                                                         "Command output: " + server_list[0]
        assert "nick=" + serv1.get_nick() in server_list[0], "Server nick not found in output.\n" \
                                                             "Server nick: " + serv1.get_nick() + "\n" \
                                                             "Command output: " + server_list[0]
        assert "auto_connect=" + str(serv1.auto_connect) in \
               server_list[0], "Server auto connect not found in output.\n" \
                               "Server auto connect: " + \
                               str(serv1.auto_connect) + "\n" \
                                                         "Command output: " + server_list[0]
예제 #2
0
 def test_op_1_user_no_power(self):
     serv1 = ServerMock(self.hallo)
     serv1.name = "test_serv1"
     serv1.type = Server.TYPE_IRC
     self.hallo.add_server(serv1)
     chan1 = serv1.get_channel_by_address("test_chan1".lower(), "test_chan1")
     chan1.in_channel = True
     user1 = serv1.get_user_by_address("test_user1".lower(), "test_user1")
     user2 = serv1.get_user_by_address("test_user2".lower(), "test_user2")
     user_hallo = serv1.get_user_by_address(serv1.get_nick().lower(), serv1.get_nick())
     chan1.add_user(user1)
     chan1_user1 = chan1.get_membership_by_user(user1)
     chan1_user1.is_op = False
     chan1.add_user(user_hallo)
     chan1_hallo = chan1.get_membership_by_user(user_hallo)
     chan1_hallo.is_op = False
     chan1.add_user(user2)
     chan1_user2 = chan1.get_membership_by_user(user2)
     chan1_user2.is_op = False
     try:
         self.function_dispatcher.dispatch(EventMessage(serv1, chan1, user1, "op test_user2"))
         data = serv1.get_send_data(1, chan1, EventMessage)
         assert "error" in data[0].text.lower()
         assert "don't have power" in data[0].text.lower()
     finally:
         self.hallo.remove_server(serv1)
예제 #3
0
 def test_mute_0(self):
     serv1 = ServerMock(self.hallo)
     serv1.name = "test_serv1"
     serv1.type = Server.TYPE_IRC
     self.hallo.add_server(serv1)
     chan1 = serv1.get_channel_by_address("test_chan1".lower(), "test_chan1")
     chan1.in_channel = True
     user1 = serv1.get_user_by_address("test_user1".lower(), "test_user1")
     user_hallo = serv1.get_user_by_address(serv1.get_nick().lower(), serv1.get_nick())
     chan1.add_user(user1)
     chan1.add_user(user_hallo)
     chan1_user1 = chan1.get_membership_by_user(user1)
     chan1_user1.is_op = False
     chan1_hallo = chan1.get_membership_by_user(user_hallo)
     chan1_hallo.is_op = True
     try:
         self.function_dispatcher.dispatch(EventMessage(serv1, chan1, user1, "mute"))
         data = serv1.get_send_data(2)
         assert "error" not in data[1].text.lower()
         assert data[0].channel == chan1
         assert data[1].channel == chan1
         assert data[0].__class__ == EventMode
         assert data[1].__class__ == EventMessage
         assert data[0].mode_changes == "+m"
         assert "set mute in "+chan1.name in data[1].text.lower()
     finally:
         self.hallo.remove_server(serv1)
예제 #4
0
 def test_invite_2_user_user_already_there(self):
     serv1 = ServerMock(self.hallo)
     serv1.name = "test_serv1"
     serv1.type = Server.TYPE_IRC
     self.hallo.add_server(serv1)
     chan1 = serv1.get_channel_by_address("test_chan1".lower(), "test_chan1")
     chan1.in_channel = True
     chan2 = serv1.get_channel_by_address("test_chan2".lower(), "test_chan2")
     chan2.in_channel = True
     user1 = serv1.get_user_by_address("test_user1".lower(), "test_user1")
     user2 = serv1.get_user_by_address("test_user2".lower(), "test_user2")
     user_hallo = serv1.get_user_by_address(serv1.get_nick().lower(), serv1.get_nick())
     chan1.add_user(user1)
     chan1_user1 = chan1.get_membership_by_user(user1)
     chan1_user1.is_op = False
     chan1.add_user(user_hallo)
     chan1_hallo = chan1.get_membership_by_user(user_hallo)
     chan1_hallo.is_op = True
     chan2.add_user(user2)
     chan2_user1 = chan2.get_membership_by_user(user2)
     chan2_user1.is_op = False
     chan2.add_user(user_hallo)
     chan2_hallo = chan2.get_membership_by_user(user_hallo)
     chan2_hallo.is_op = True
     try:
         self.function_dispatcher.dispatch(EventMessage(serv1, chan1, user1, "invite test_user2 test_chan2"))
         data = serv1.get_send_data(1, chan1, EventMessage)
         assert "error" in data[0].text.lower()
         assert "test_user2 is already in test_chan2" in data[0].text.lower()
     finally:
         self.hallo.remove_server(serv1)
예제 #5
0
 def test_invite_2_user(self):
     serv1 = ServerMock(self.hallo)
     serv1.name = "test_serv1"
     serv1.type = Server.TYPE_IRC
     self.hallo.add_server(serv1)
     chan1 = serv1.get_channel_by_address("test_chan1".lower(), "test_chan1")
     chan1.in_channel = True
     chan2 = serv1.get_channel_by_address("test_chan2".lower(), "test_chan2")
     chan2.in_channel = True
     user1 = serv1.get_user_by_address("test_user1".lower(), "test_user1")
     user2 = serv1.get_user_by_address("test_user2".lower(), "test_user2")
     user_hallo = serv1.get_user_by_address(serv1.get_nick().lower(), serv1.get_nick())
     chan1.add_user(user1)
     chan1_user1 = chan1.get_membership_by_user(user1)
     chan1_user1.is_op = False
     chan1.add_user(user_hallo)
     chan1_hallo = chan1.get_membership_by_user(user_hallo)
     chan1_hallo.is_op = True
     chan2.add_user(user_hallo)
     chan2_hallo = chan2.get_membership_by_user(user_hallo)
     chan2_hallo.is_op = True
     try:
         self.function_dispatcher.dispatch(EventMessage(serv1, chan1, user1, "invite test_user2 test_chan2"))
         data = serv1.get_send_data(2)
         assert "error" not in data[1].text.lower()
         assert data[0].channel == chan2
         assert data[1].channel == chan1
         assert data[0].__class__ == EventInvite
         assert data[1].__class__ == EventMessage
         assert data[0].invited_user == user2
         assert "invite sent" in data[1].text.lower()
     finally:
         self.hallo.remove_server(serv1)
예제 #6
0
 def test_devoice_1priv(self):
     serv1 = ServerMock(self.hallo)
     serv1.name = "test_serv1"
     serv1.type = Server.TYPE_IRC
     self.hallo.add_server(serv1)
     chan1 = serv1.get_channel_by_address("test_chan1".lower(), "test_chan1")
     chan1.in_channel = True
     user1 = serv1.get_user_by_address("test_user1".lower(), "test_user1")
     user_hallo = serv1.get_user_by_address(serv1.get_nick().lower(), serv1.get_nick())
     chan1.add_user(user1)
     chan1.add_user(user_hallo)
     chan1_user1 = chan1.get_membership_by_user(user1)
     chan1_user1.is_voice = True
     chan1_hallo = chan1.get_membership_by_user(user_hallo)
     chan1_hallo.is_op = True
     try:
         self.function_dispatcher.dispatch(EventMessage(serv1, None, user1, "devoice test_chan1"))
         data = serv1.get_send_data(2)
         assert "error" not in data[1].text.lower()
         assert data[0].channel == chan1
         assert data[1].user == user1
         assert data[0].__class__ == EventMode
         assert data[1].__class__ == EventMessage
         assert "-v "+user1.name in data[0].mode_changes
         assert "status taken" in data[1].text.lower()
     finally:
         self.hallo.remove_server(serv1)
예제 #7
0
 def test_voice_1_user_is_voice(self):
     serv1 = ServerMock(self.hallo)
     serv1.name = "test_serv1"
     serv1.type = Server.TYPE_IRC
     self.hallo.add_server(serv1)
     chan1 = serv1.get_channel_by_name("test_chan1")
     chan1.in_channel = True
     user1 = serv1.get_user_by_name("test_user1")
     user2 = serv1.get_user_by_name("test_user2")
     user_hallo = serv1.get_user_by_name(serv1.get_nick())
     chan1.add_user(user1)
     chan1_user1 = chan1.get_membership_by_user(user1)
     chan1_user1.is_op = False
     chan1.add_user(user_hallo)
     chan1_hallo = chan1.get_membership_by_user(user_hallo)
     chan1_hallo.is_op = True
     chan1.add_user(user2)
     chan1_user2 = chan1.get_membership_by_user(user2)
     chan1_user2.is_op = False
     chan1_user2.is_voice = True
     try:
         self.function_dispatcher.dispatch("voice test_user2", user1, chan1)
         data = serv1.get_send_data(1, chan1, Server.MSG_MSG)
         assert "error" in data[0][0].lower()
         assert "already has voice" in data[0][0].lower()
     finally:
         self.hallo.remove_server(serv1)
예제 #8
0
 def test_deop_0(self):
     serv1 = ServerMock(self.hallo)
     serv1.name = "test_serv1"
     serv1.type = Server.TYPE_IRC
     self.hallo.add_server(serv1)
     chan1 = serv1.get_channel_by_name("test_chan1")
     chan1.in_channel = True
     user1 = serv1.get_user_by_name("test_user1")
     user_hallo = serv1.get_user_by_name(serv1.get_nick())
     chan1.add_user(user1)
     chan1.add_user(user_hallo)
     chan1_user1 = chan1.get_membership_by_user(user1)
     chan1_user1.is_op = True
     chan1_hallo = chan1.get_membership_by_user(user_hallo)
     chan1_hallo.is_op = True
     try:
         self.function_dispatcher.dispatch("deop", user1, chan1)
         data = serv1.get_send_data(2)
         assert "error" not in data[0][0].lower()
         assert data[0][1] is None
         assert data[1][1] == chan1
         assert data[0][2] == Server.MSG_RAW
         assert data[1][2] == Server.MSG_MSG
         assert data[0][0][:4] == "MODE"
         assert chan1.name+" -o "+user1.name in data[0][0]
         assert "status taken" in data[1][0].lower()
     finally:
         self.hallo.remove_server(serv1)
예제 #9
0
 def test_op_0_privmsg(self):
     serv1 = ServerMock(self.hallo)
     serv1.name = "test_serv1"
     serv1.type = Server.TYPE_IRC
     self.hallo.add_server(serv1)
     chan1 = serv1.get_channel_by_address("test_chan1".lower(), "test_chan1")
     user1 = serv1.get_user_by_address("test_user1".lower(), "test_user1")
     chan1.add_user(user1)
     chan1.add_user(serv1.get_user_by_address(serv1.get_nick().lower(), serv1.get_nick()))
     try:
         self.function_dispatcher.dispatch(EventMessage(serv1, None, user1, "op"))
         data = serv1.get_send_data(1, user1, EventMessage)
         assert "error" in data[0].text.lower()
         assert "in a private message" in data[0].text.lower()
     finally:
         self.hallo.remove_server(serv1)
예제 #10
0
 def test_invite_2_user(self):
     serv1 = ServerMock(self.hallo)
     serv1.name = "test_serv1"
     serv1.type = Server.TYPE_IRC
     self.hallo.add_server(serv1)
     chan1 = serv1.get_channel_by_name("test_chan1")
     chan1.in_channel = True
     chan2 = serv1.get_channel_by_name("test_chan2")
     chan2.in_channel = True
     user1 = serv1.get_user_by_name("test_user1")
     user2 = serv1.get_user_by_name("test_user2")
     user_hallo = serv1.get_user_by_name(serv1.get_nick())
     chan1.add_user(user1)
     chan1_user1 = chan1.get_membership_by_user(user1)
     chan1_user1.is_op = False
     chan1.add_user(user_hallo)
     chan1_hallo = chan1.get_membership_by_user(user_hallo)
     chan1_hallo.is_op = True
     chan2.add_user(user_hallo)
     chan2_hallo = chan2.get_membership_by_user(user_hallo)
     chan2_hallo.is_op = True
     try:
         self.function_dispatcher.dispatch("invite test_user2 test_chan2", user1, chan1)
         data = serv1.get_send_data(2)
         assert "error" not in data[0][0].lower()
         assert data[0][1] is None
         assert data[1][1] == chan1
         assert data[0][2] == Server.MSG_RAW
         assert data[1][2] == Server.MSG_MSG
         assert data[0][0][:6] == "INVITE"
         assert user2.name+" "+chan2.name in data[0][0]
         assert "invite sent" in data[1][0].lower()
     finally:
         self.hallo.remove_server(serv1)
예제 #11
0
 def test_invite_not_irc(self):
     serv1 = ServerMock(self.hallo)
     serv1.name = "test_serv1"
     serv1.type = "NOT_IRC"
     self.hallo.add_server(serv1)
     chan1 = serv1.get_channel_by_address("test_chan1".lower(), "test_chan1")
     user1 = serv1.get_user_by_address("test_user1".lower(), "test_user1")
     chan1.add_user(user1)
     chan1.add_user(serv1.get_user_by_address(serv1.get_nick().lower(), serv1.get_nick()))
     try:
         self.function_dispatcher.dispatch(EventMessage(serv1, chan1, user1, "invite"))
         data = serv1.get_send_data(1, chan1, EventMessage)
         assert "error" in data[0].text.lower()
         assert "only available for irc" in data[0].text.lower()
     finally:
         self.hallo.remove_server(serv1)
예제 #12
0
 def test_deop_2_user_not_op(self):
     serv1 = ServerMock(self.hallo)
     serv1.name = "test_serv1"
     serv1.type = Server.TYPE_IRC
     self.hallo.add_server(serv1)
     chan1 = serv1.get_channel_by_name("test_chan1")
     chan1.in_channel = True
     chan2 = serv1.get_channel_by_name("test_chan2")
     chan2.in_channel = True
     user1 = serv1.get_user_by_name("test_user1")
     user2 = serv1.get_user_by_name("test_user2")
     user_hallo = serv1.get_user_by_name(serv1.get_nick())
     chan1.add_user(user1)
     chan1_user1 = chan1.get_membership_by_user(user1)
     chan1_user1.is_op = False
     chan1.add_user(user_hallo)
     chan1_hallo = chan1.get_membership_by_user(user_hallo)
     chan1_hallo.is_op = True
     chan2.add_user(user2)
     chan2_user2 = chan2.get_membership_by_user(user2)
     chan2_user2.is_op = False
     chan2.add_user(user_hallo)
     chan2_hallo = chan2.get_membership_by_user(user_hallo)
     chan2_hallo.is_op = True
     try:
         self.function_dispatcher.dispatch("deop test_user2 test_chan2", user1, chan1)
         data = serv1.get_send_data(1, chan1, Server.MSG_MSG)
         assert "error" in data[0][0].lower()
         assert "doesn't have op" in data[0][0].lower()
     finally:
         self.hallo.remove_server(serv1)
예제 #13
0
class TestBase(unittest.TestCase):

    def setUp(self):
        print("Starting test: "+self.id())
        self.start_time = time.time()
        # Create a Hallo
        self.hallo = Hallo()
        # Swap out raw printer function for empty
        self.hallo.printer.output = self.empty
        # Only the required modules, only 1 (mock) server
        # Todo: specify modules by test?
        self.function_dispatcher = FunctionDispatcher({"AsciiArt", "Bio", "ChannelControl", "Convert", "Euler",
                                                       "HalloControl", "Math", "PermissionControl", "Random",
                                                       "ServerControl", "Silly", "Subscriptions"},
                                                      self.hallo)
        self.hallo.function_dispatcher = self.function_dispatcher
        print("Running test: "+self.id()+". Init took: "+str(time.time()-self.start_time)+" seconds.")
        self.server = ServerMock(self.hallo)
        self.server.name = "mock-server"
        # self.server = unittest.mock.Mock()
        self.hallo.add_server(self.server)
        # send shit in, check shit out
        self.hallo_thread = Thread(target=self.hallo.start,)
        self.hallo_thread.start()
        self.hallo_user = self.server.get_user_by_address(self.server.get_nick().lower(), self.server.get_nick())
        self.test_user = self.server.get_user_by_address("test", "test")
        """ :type : Destination.User"""
        self.test_user.online = True
        self.test_chan = self.server.get_channel_by_address("#test", "#test")
        self.test_chan.in_channel = True
        self.test_chan.add_user(self.hallo_user)
        self.test_chan.add_user(self.test_user)
        # Wait until hallo is open
        count = 0
        while not self.hallo.open:
            time.sleep(0.1)
            count += 1
            assert count < 100, "Hallo took too long to start."
            if count > 100:
                break
        # Clear any data in the server
        self.server.get_send_data()
        # Print test startup time
        print("Running test: "+self.id()+". Startup took: "+str(time.time()-self.start_time)+" seconds.")
        self.start_time = time.time()

    def tearDown(self):
        print("Finishing test: "+self.id()+". Test took: "+str(time.time()-self.start_time)+" seconds.")
        self.hallo.close()
        self.hallo_thread.join()
        print("Finished test: "+self.id()+". Test took: "+str(time.time()-self.start_time)+" seconds.")

    def empty(self, var1=None, var2=None, var3=None, var4=None):
        pass

    @classmethod
    def tearDownClass(cls):
        del cls
        gc.collect()
예제 #14
0
 def test_voice_0_no_power(self):
     serv1 = ServerMock(self.hallo)
     serv1.name = "test_serv1"
     serv1.type = Server.TYPE_IRC
     self.hallo.add_server(serv1)
     chan1 = serv1.get_channel_by_address("test_chan1".lower(), "test_chan1")
     chan1.in_channel = True
     user1 = serv1.get_user_by_address("test_user1".lower(), "test_user1")
     chan1.add_user(user1)
     chan1.add_user(serv1.get_user_by_address(serv1.get_nick().lower(), serv1.get_nick()))
     try:
         self.function_dispatcher.dispatch(EventMessage(serv1, chan1, user1, "voice"))
         data = serv1.get_send_data(1, chan1, EventMessage)
         assert "error" in data[0].text.lower()
         assert "don't have power" in data[0].text.lower()
     finally:
         self.hallo.remove_server(serv1)
예제 #15
0
 def test_voice_1priv_user_not_there(self):
     serv1 = ServerMock(self.hallo)
     serv1.name = "test_serv1"
     serv1.type = Server.TYPE_IRC
     self.hallo.add_server(serv1)
     chan1 = serv1.get_channel_by_address("test_chan1".lower(), "test_chan1")
     chan1.in_channel = True
     user1 = serv1.get_user_by_address("test_user1".lower(), "test_user1")
     user_hallo = serv1.get_user_by_address(serv1.get_nick().lower(), serv1.get_nick())
     chan1.add_user(user_hallo)
     chan1_hallo = chan1.get_membership_by_user(user_hallo)
     chan1_hallo.is_op = True
     try:
         self.function_dispatcher.dispatch(EventMessage(serv1, None, user1, "voice test_chan1"))
         data = serv1.get_send_data(1, user1, EventMessage)
         assert "error" in data[0].text.lower()
         assert "test_user1 is not in test_chan1" in data[0].text.lower()
     finally:
         self.hallo.remove_server(serv1)
예제 #16
0
 def test_invite_0_fail(self):
     serv1 = ServerMock(self.hallo)
     serv1.name = "test_serv1"
     serv1.type = Server.TYPE_IRC
     self.hallo.add_server(serv1)
     chan1 = serv1.get_channel_by_address("test_chan1".lower(), "test_chan1")
     chan1.in_channel = True
     user1 = serv1.get_user_by_address("test_user1".lower(), "test_user1")
     user_hallo = serv1.get_user_by_address(serv1.get_nick().lower(), serv1.get_nick())
     chan1.add_user(user1)
     chan1.add_user(user_hallo)
     chan1_user1 = chan1.get_membership_by_user(user1)
     chan1_user1.is_op = False
     chan1_hallo = chan1.get_membership_by_user(user_hallo)
     chan1_hallo.is_op = True
     try:
         self.function_dispatcher.dispatch(EventMessage(serv1, chan1, user1, "invite"))
         data = serv1.get_send_data(1, chan1, EventMessage)
         assert "error" in data[0].text.lower()
         assert "specify a user to invite and/or a channel" in data[0].text.lower()
     finally:
         self.hallo.remove_server(serv1)
예제 #17
0
 def test_deop_not_irc(self):
     serv1 = ServerMock(self.hallo)
     serv1.name = "test_serv1"
     serv1.type = "NOT_IRC"
     self.hallo.add_server(serv1)
     chan1 = serv1.get_channel_by_name("test_chan1")
     user1 = serv1.get_user_by_name("test_user1")
     chan1.add_user(user1)
     chan1.add_user(serv1.get_user_by_name(serv1.get_nick()))
     try:
         self.function_dispatcher.dispatch("deop", user1, chan1)
         data = serv1.get_send_data(1, chan1, Server.MSG_MSG)
         assert "error" in data[0][0].lower()
         assert "only available for irc" in data[0][0].lower()
     finally:
         self.hallo.remove_server(serv1)
예제 #18
0
 def test_deop_0_privmsg(self):
     serv1 = ServerMock(self.hallo)
     serv1.name = "test_serv1"
     serv1.type = Server.TYPE_IRC
     self.hallo.add_server(serv1)
     chan1 = serv1.get_channel_by_name("test_chan1")
     user1 = serv1.get_user_by_name("test_user1")
     chan1.add_user(user1)
     chan1.add_user(serv1.get_user_by_name(serv1.get_nick()))
     try:
         self.function_dispatcher.dispatch("deop", user1, user1)
         data = serv1.get_send_data(1, user1, Server.MSG_MSG)
         assert "error" in data[0][0].lower()
         assert "in a private message" in data[0][0].lower()
     finally:
         self.hallo.remove_server(serv1)
예제 #19
0
 def test_deop_0_no_power(self):
     serv1 = ServerMock(self.hallo)
     serv1.name = "test_serv1"
     serv1.type = Server.TYPE_IRC
     self.hallo.add_server(serv1)
     chan1 = serv1.get_channel_by_name("test_chan1")
     chan1.in_channel = True
     user1 = serv1.get_user_by_name("test_user1")
     chan1.add_user(user1)
     chan1.add_user(serv1.get_user_by_name(serv1.get_nick()))
     try:
         self.function_dispatcher.dispatch("deop", user1, chan1)
         data = serv1.get_send_data(1, chan1, Server.MSG_MSG)
         assert "error" in data[0][0].lower()
         assert "don't have power" in data[0][0].lower()
     finally:
         self.hallo.remove_server(serv1)
예제 #20
0
 def test_deop_1priv_user_not_there(self):
     serv1 = ServerMock(self.hallo)
     serv1.name = "test_serv1"
     serv1.type = Server.TYPE_IRC
     self.hallo.add_server(serv1)
     chan1 = serv1.get_channel_by_name("test_chan1")
     chan1.in_channel = True
     user1 = serv1.get_user_by_name("test_user1")
     user_hallo = serv1.get_user_by_name(serv1.get_nick())
     chan1.add_user(user_hallo)
     chan1_hallo = chan1.get_membership_by_user(user_hallo)
     chan1_hallo.is_op = True
     try:
         self.function_dispatcher.dispatch("deop test_chan1", user1, user1)
         data = serv1.get_send_data(1, user1, Server.MSG_MSG)
         assert "error" in data[0][0].lower()
         assert "test_user1 is not in test_chan1" in data[0][0].lower()
     finally:
         self.hallo.remove_server(serv1)
예제 #21
0
 def test_mute_1_no_power(self):
     serv1 = ServerMock(self.hallo)
     serv1.name = "test_serv1"
     serv1.type = Server.TYPE_IRC
     self.hallo.add_server(serv1)
     chan1 = serv1.get_channel_by_name("test_chan1")
     chan1.in_channel = True
     user1 = serv1.get_user_by_name("test_user1")
     user_hallo = serv1.get_user_by_name(serv1.get_nick())
     chan1.add_user(user1)
     chan1.add_user(user_hallo)
     chan1_user1 = chan1.get_membership_by_user(user1)
     chan1_user1.is_op = False
     chan1_hallo = chan1.get_membership_by_user(user_hallo)
     chan1_hallo.is_op = False
     try:
         self.function_dispatcher.dispatch("mute test_chan1", user1, user1)
         data = serv1.get_send_data(1, user1, Server.MSG_MSG)
         assert "error" in data[0][0].lower()
         assert "don't have power" in data[0][0].lower()
     finally:
         self.hallo.remove_server(serv1)
예제 #22
0
 def test_two_mock_servers(self):
     # Add two servers
     serv1 = ServerMock(self.hallo)
     serv1.name = "server_list_test1"
     serv1.auto_connect = True
     serv1.nick = "hallo"
     serv1.disconnect()
     self.hallo.add_server(serv1)
     serv2 = ServerMock(self.hallo)
     serv2.name = "server_list_test2"
     serv2.auto_connect = False
     serv2.nick = "yobot"
     serv2.start()
     self.hallo.add_server(serv2)
     # Send command
     self.function_dispatcher.dispatch(EventMessage(self.server, self.test_chan, self.test_user, "list servers"))
     data = self.server.get_send_data(1, self.test_chan, EventMessage)
     # Check response
     server_list_text = data[0].text.split(": \n")[1]
     server_list = server_list_text.split("\n")
     assert len(server_list) == 2
     if serv1.name in server_list[0]:
         server_text1 = server_list[0]
         server_text2 = server_list[1]
     else:
         server_text1 = server_list[1]
         server_text2 = server_list[0]
     assert serv1.name in server_text1, "Server 1 name not found in output.\n" \
                                        "Server name: " + serv1.name + "\n" \
                                        "Server output: " + str(server_text1) + "\n" \
                                        "Full output: " + data[0].text
     assert "type=" + serv1.type in server_text1, "Server 1 type not found in output.\n" \
                                                  "Server type: " + serv1.type + "\n" \
                                                  "Server output: " + str(server_text1) + "\n" \
                                                  "Full output: " + data[0].text
     assert "state=" + serv1.state in server_text1, "Server 1 state not found in output.\n" \
                                                    "Server state: " + serv1.state + "\n" \
                                                    "Server output: " + str(server_text1) + "\n" \
                                                    "Full output: " + data[0].text
     assert "nick=" + serv1.get_nick() in server_text1, "Server 1 nick not found in output.\n" \
                                                        "Server nick: " + serv1.get_nick() + "\n" \
                                                        "Server output: " + str(server_text1) + "\n" \
                                                        "Full output: " + data[0].text
     assert "auto_connect=" + str(serv1.auto_connect) in \
            server_text1, "Server 1 auto connect not found in output.\n" \
                          "Server auto connect: " + \
                          str(serv1.auto_connect) + "\n" \
                          "Server output: " + str(server_text1) + "\n" \
                          "Full output: " + data[0].text
     assert serv2.name in server_text2, "Server 2 name not found in output.\n" \
                                        "Server name: " + serv2.name + "\n" \
                                        "Server output: " + str(server_text2) + "\n" \
                                        "Full output: " + data[0].text
     assert "type=" + serv2.type in server_text2, "Server 2 type not found in output.\n" \
                                                  "Server type: " + serv2.type + "\n" \
                                                  "Server output: " + str(server_text2) + "\n" \
                                                  "Full output: " + data[0].text
     assert "state=" + serv2.state in server_text2, "Server 2 state not found in output.\n" \
                                                    "Server state: " + serv2.state + "\n" \
                                                    "Server output: " + str(server_text2) + "\n" \
                                                    "Full output: " + data[0].text
     assert "nick=" + serv2.get_nick() in server_text2, "Server 2 nick not found in output.\n" \
                                                        "Server nick: " + serv2.get_nick() + "\n" \
                                                        "Server output: " + str(server_text2) + "\n" \
                                                        "Full output: " + data[0].text
     assert "auto_connect=" + str(serv2.auto_connect) in \
            server_text2, "Server 2 auto connect not found in output.\n" \
                          "Server auto connect: " + \
                          str(serv2.auto_connect) + "\n" \
                          "Server output: " + str(server_text2) + "\n" \
                          "Full output: " + data[0].text