def test_receive_message(self): "Message received is the same length as the message sent" client = Client() fakeincoming = FakeSocket() fakeincoming.message = "hello!" client.incoming = fakeincoming self.assertTrue(client.receive_message())
def test_send_exit(self): "An exit message sent from the client shuts down the socket and sets threads = False" client = Client() fakesock = FakeSocket() client.outgoing = fakesock client.send_message('exit') self.assertTrue(fakesock.shut) self.assertFalse(client.threads)
def test_send_message(self): "Message is sent from the client to the server and sets threads = True" client = Client() fakesock = FakeSocket() client.outgoing = fakesock client.send_message('hello!') self.assertTrue(fakesock.did_message_send) self.assertTrue(client.threads)
def __init__(self, parent=None): QtGui.QWidget.__init__(self, parent) self.setupUi(self) self.actionConnect.triggered.connect(self.open_connect_window) self.actionExit.triggered.connect(self.close) self.send_btn.clicked.connect(self.send_message) self.chat_input.returnPressed.connect(self.send_message) self.connect_window = None self.irc = Client() self.read_thread = self.irc.read_thread self.read_thread.new_message_signal.connect(self.add_new_message)
def setUp(self): stream_writer = mock.AsyncMock() slack_client = mock.AsyncMock() settings = mock.MagicMock() settings.silenced_yellers = set() settings.provider = Provider.SLACK self.client = Client(stream_writer, slack_client, settings)
def client(*args, **kargs): # Save PEP 3122! if "." in __name__: from .irc import Client else: from irc import Client Client(*args, **kargs)
def setUp(self): class MockClient: def __init__(self): self.members = set(('0', )) async def get_members(self, channels): return self.members async def get_user_by_name(self, username): return User(username, username, None) async def get_user(self, id_): return User('0', 'LtWorf', None) self.mock_client = MockClient() self.client = Client(None, self.mock_client, False, True, Provider.SLACK, set())
def init(): global DB, CONN, c, AUTO_JOINS, MODYS #try: if 1 == 1: loadMods() DB = database.Database() CONN = Connection(Host="irc.GameSurge.net", Nick="PluzB0t").connect(True, debug=False) c = Client(CONN) for i in MODYS: THREADS.append(thread.start_new_thread(i.ready, (c,))) for chan in AUTO_JOINS: c.joinChannel(chan) while c.alive: c.parse(CONN.read())
class MainWindow(QtGui.QMainWindow, Ui_MainWindow): def __init__(self, parent=None): QtGui.QWidget.__init__(self, parent) self.setupUi(self) self.actionConnect.triggered.connect(self.open_connect_window) self.actionExit.triggered.connect(self.close) self.send_btn.clicked.connect(self.send_message) self.chat_input.returnPressed.connect(self.send_message) self.connect_window = None self.irc = Client() self.read_thread = self.irc.read_thread self.read_thread.new_message_signal.connect(self.add_new_message) def open_connect_window(self): if not self.connect_window: self.connect_window = ConnectWindow() self.connect_window.show() def add_new_message(self, message): message = unicode(message) message_dict = self.irc.handle_message(message) prefix = message_dict["prefix"] command = message_dict["command"] parameters = message_dict["parameters"] if command == "PRIVMSG": user = prefix.split("!")[0] print parameters[0] self.channel_output.append("<b>{user}</b>: {text}".format( user=user, text=parameters[1])) else: self.server_output.append(message) def send_message(self): text = unicode(self.chat_input.text()) if text: self.irc.send("PRIVMSG #testtesttest :" + text) self.chat_input.setText("") self.chat_input.setFocus() def closeEvent(self, event): if self.irc.connected: self.irc.disconnect()
class TestMagic(unittest.TestCase): def setUp(self): class MockClient: def __init__(self): self.members = set(('0', )) async def get_members(self, channels): return self.members async def get_user_by_name(self, username): return User(username, username, None) async def get_user(self, id_): return User('0', 'LtWorf', None) self.mock_client = MockClient() settings = ClientSettings( False, True, Provider.SLACK, set(), Path('/tmp'), ) self.client = Client(None, self.mock_client, settings) def test_no_replace(self): ''' Check that no substitutions are done on regular strings and nickname in url ''' cases = [ 'ciao', 'http://LtWorf/', 'ciao https://link.com/LtWorf', 'ciao https://link.com/LtWorf?param', ] dest = Channel('0', '0', None, None) for i in cases: assert asyncio.run(self.client._addmagic(i, dest)) == i def test_escapes(self): dest = User('0', 'LtWorf', None) assert asyncio.run(self.client._addmagic('<', dest)) == '<' assert asyncio.run(self.client._addmagic('>ciao', dest)) == '>ciao' def test_annoyiances(self): dest = User('0', 'LtWorf', None) asyncio.run(self.client._addmagic('ciao @here', dest)) == 'ciao <!here>' asyncio.run(self.client._addmagic('ciao @channel', dest)) == 'ciao <!channel>' asyncio.run(self.client._addmagic('ciao @everyone </', dest)) == 'ciao <!everyone> </' def test_mentions(self): dest = Channel('0', '0', None, None) assert asyncio.run(self.client._addmagic('ciao LtWorf', dest)) == 'ciao <@LtWorf>' assert asyncio.run(self.client._addmagic('LtWorf: ciao', dest)) == '<@LtWorf>: ciao' assert asyncio.run(self.client._addmagic( 'LtWorf: ciao LtWorf', dest)) == '<@LtWorf>: ciao <@LtWorf>' assert asyncio.run(self.client._addmagic('_LtWorf', dest)) == '_LtWorf' assert asyncio.run( self.client._addmagic( 'LtWorf: http://link/user=LtWorf', dest)) == '<@LtWorf>: http://link/user=LtWorf'
from irc import Client import select import time import argparse parser = argparse.ArgumentParser() parser.add_argument("-ip", help="Adresse of the IRC server") parser.add_argument("-port", type=int, help="Port of the IRC server (\"6667\" by default)", default=6667) parser.add_argument("-n", "--nickname", help="Nickname (\"Guest\" by default)", default="Guest") parser.add_argument("-f", "--fullname", help="Fullname (\"John Doe\" by default)", default="John Doe") parser.add_argument("-p", "--password", help="Password (empty by default)", default="") parser.add_argument("--noarg", help="Do not enter information via arguments but inside the program.", action="store_true") args = parser.parse_args() server = Client(args.ip, int(args.port), args.nickname, args.fullname, args.password) if args.noarg is True: server.ask_config() server.connect() msg = "" while server.connected is True: try: readable, writeable, xset = select.select([server.socket], [server.socket], [], 0.1) except select.error: pass for socket in readable: data = socket.recv(8192) print(data.decode()) if server.is_disconnected(data) is True: break