def test_leave(self): msg = JimMessage() msg.compose('leave', room='#chatroom') assert msg.encode(), { 'action': 'leave', 'time': int(time.time()), 'room': '#chatroom' }
def test_msg(self): msg = JimMessage() msg.compose('msg', msg_to='Recipient', msg_from='Sender', msg='Test Message') assert msg.encode(), { 'action': 'msg', 'to': 'Recipient', 'from': 'Sender', 'time': int(time.time()), 'message': 'Test Message' }
def test_auth(self): msg = JimMessage() msg.compose('authenticate', user={ 'account_name': 'JohnDoe', 'password': '******' }) assert msg.encode(), { 'action': 'authenticate', 'time': int(time.time()), 'user': { 'account_name': 'JohnDoe', 'password': '******' } }
def test_presence(self): msg = JimMessage() msg.compose('presence', user={ 'account_name': 'JohnDoe', 'status': 'here' }) assert msg.encode(), { 'action': 'presence', 'time': int(time.time()), 'user': { 'account_name': 'JohnDoe', 'status': 'here' } }
class JimClient: def __init__(self, host, port, user=None, password=None): self.host, self.port = host, port self.user = user or 'guest' self.password = password or '' self.socket = socket(AF_INET, SOCK_STREAM) self.socket.connect((self.host, self.port)) self.msg = JimMessage() self.rsp = JimResponse() def disconnect(self): self.socket.close() def send_presence(self, status=''): if status == '': self.msg.compose('presence', user={ 'account_name': self.user, 'status': status }) else: self.msg.compose('presence', type='status', user={ 'account_name': self.user, 'status': status }) if self.msg.send_message(self.socket): return self.rsp.read_response(self.socket) return None def send_message(self, user, message): self.msg.compose('msg', msg_to=user, msg_from=self.user, msg=message) if self.msg.send_message(self.socket): response = self.rsp.read_response(self.socket) if user.startswith('#'): msg = JimMessage() msg.read_message(self.socket) return response return None def reading_loop(self): msg = JimMessage() while True: data = msg.read_message(self.socket) print(data)
def test_quit(self): msg = JimMessage() msg.compose('quit') assert msg.encode() == {'action': 'quit', 'time': int(time.time())}
def test_probe(self): msg = JimMessage() msg.compose('probe') assert msg.encode() == {'action': 'probe', 'time': int(time.time())}
def test_probe(self): msg = JimMessage() msg.compose('probe') self.assertEqual(msg.encode(), {'action': 'probe', 'time': int(time.time())})
def test_join(self): msg = JimMessage() msg.compose('join', room='#chatroom') self.assertEqual(msg.encode(), {'action': 'join', 'time': int(time.time()), 'room': '#chatroom'})
def test_quit(self): msg = JimMessage() msg.compose('quit') self.assertEqual(msg.encode(), {'action': 'quit', 'time': int(time.time())})