def get_contacts(self): """ Fetches list of all contacts This will return chats with people from the address book only Use get_all_chats for all chats :return: List of contacts :rtype: list[Chat] """ all_contacts = self.wapi_functions.getAllContacts() return [Contact(contact, self) for contact in all_contacts]
def test_notification_timeout(self): if os.name == 'nt': return # These queues connect a poller/reactionner with a worker to_queue = Queue() manager = Manager() from_queue = manager.list() control_queue = Queue() # This testscript plays the role of the reactionner # Now "fork" a worker w = Worker(1,to_queue,from_queue,1) w.id = 1 w.i_am_dying = False # We prepare a notification in the to_queue c = Contact() c.contact_name = "mr.schinken" n = Notification('PROBLEM', 'scheduled', 'libexec/sleep_command.sh 7', '', Service(), '', '', id=1) n.status = "queue" #n.command = "libexec/sleep_command.sh 7" n.t_to_go = time.time() n.contact = c n.timeout = 2 n.env = {} n.exit_status = 0 n.module_type = "fork" nn = n.copy_shell() # Send the job to the worker msg = Message(id=0, type='Do', data=nn) to_queue.put(msg) w.checks = [] w.returns_queue = from_queue w.s = to_queue w.c = control_queue # Now we simulate the Worker's work() routine. We can't call it # as w.work() because it is an endless loop for i in xrange(1,10): w.get_new_checks() # During the first loop the sleeping command is launched w.launch_new_checks() w.manage_finished_checks() time.sleep(1) # The worker should have finished it's job now, either correctly or # with a timeout o = from_queue.pop() self.assert_(o.status == 'timeout') self.assert_(o.exit_status == 3) self.assert_(o.execution_time < n.timeout+1) # Be a good poller and clean up. to_queue.close() control_queue.close() # Now look what the scheduler says to all this self.sched.actions[n.id] = n self.sched.put_results(o) self.assert_(self.any_log_match("Warning: Contact mr.schinken service notification command 'libexec/sleep_command.sh 7 ' timed out after 2 seconds"))
def get_contact_from_id(self, contact_id): contact = self.wapi_functions.getContact(contact_id) assert contact, "Contact {0} not found".format(contact_id) return Contact(contact)