class ImpatientTester(Thread): """ An instance of ChatTester logs in to the chat server and performs requests for rooms, speaks, etc... """ def __init__ (self, id, thread_queue, num_iters): Thread.__init__(self) self.user_id = id self.API = ChatAPI(self.user_id) self.num_iters = num_iters self.thread_queue = thread_queue self.API.login() self.API.timeout = .5 self.unique = 0 def run(self): """Main method, log in and perform requests""" print self.name, " LIVES!" for i in range(0, self.num_iters): self.API.heartbeat() self.API.getListenResponse() time.sleep(.25) self.speak("iter = %d" % i) self.API.signout() myID = self.thread_queue.get(True, 1) self.thread_queue.task_done() def report (self): self.speak("done") def speak(self, txt): print self.name, txt
class ChatTester(Thread): """ An instance of ChatTester logs in to the chat server and performs requests for rooms, speaks, etc... """ def __init__ (self, id, thread_queue, num_iters, num_users, messageTimer): Thread.__init__(self) self.user_id = id self.API = ChatAPI(self.user_id) self.num_iters = num_iters self.num_users = num_users self.thread_queue = thread_queue self.messageTimer = messageTimer self.API.login() def run(self): """Main method, log in and perform requests""" global messageTimer print self.name, " LIVES!" self.API.requestAndListen() for i in range(0, self.num_iters): self.API.heartbeat() room_id = self.randomRoom() if room_id: messageID = self.messageTimer.nextID() self.messageTimer.sentMessage(messageID) self.API.messageRoom(messageID, room_id) self.API.heartbeat() self.processListen() time.sleep(1) self.API.heartbeat() self.processListen() self.API.signout() myID = self.thread_queue.get(True, 1) self.thread_queue.task_done() def processListen (self): messages = self.API.getMessageData() for m in messages: messageID = m["text"] if messageID.isdigit(): self.messageTimer.gotMessage(int(messageID)) def randomRoom (self): room_ids = self.API.getRoomIds() if len(room_ids) > 0: return room_ids[random.randint(0, len(room_ids) - 1)] return None def report (self): self.speak("done") self.API.printStats() def speak(self, txt): print self.name, txt