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]
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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()
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)
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)
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)
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)
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)
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)
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)
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)
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