def _topic_callback(self): self.topic_lock.acquire() sections = { lambda: len(TestingRCBugs().get_bugs()): 'RC bug count:', NewQueue().get_size: 'NEW queue:', RmQueue().get_size: 'RM queue:', } try: values = {} for callback, prefix in sections.iteritems(): values[callback] = callback() for channel in self.irc.state.channels: new_topic = topic = self.irc.state.getTopic(channel) for callback, prefix in sections.iteritems(): if values[callback]: new_topic = rewrite_topic(new_topic, prefix, values[callback]) if topic != new_topic: log.info("Queueing change of topic in #%s to '%s'" % (channel, new_topic)) self.queued_topics[channel] = new_topic event_name = '%s_topic' % channel try: schedule.removeEvent(event_name) except KeyError: pass schedule.addEvent(lambda channel=channel: self._update_topic(channel), time.time() + 60, event_name) finally: self.topic_lock.release()
def _topic_callback(self): sections = { self.testing_rc_bugs.get_number_bugs: 'RC bug count', self.stable_rc_bugs.get_number_bugs: 'Stable RC bug count', self.new_queue.get_size: 'NEW queue', RmQueue().get_size: 'RM queue', } with self.topic_lock: values = {} for callback, prefix in sections.iteritems(): values[callback] = callback() for channel in self.irc.state.channels: new_topic = topic = self.irc.state.getTopic(channel) for callback, prefix in sections.iteritems(): if values[callback]: new_topic = rewrite_topic(new_topic, prefix, values[callback]) if topic != new_topic: log.info("Queueing change of topic in #%s to '%s'" % (channel, new_topic)) self.queued_topics[channel] = new_topic event_name = '%s_topic' % channel try: schedule.removeEvent(event_name) except KeyError: pass schedule.addEvent(lambda channel=channel: self._update_topic(channel), time.time() + 60, event_name)
def testEmbedded2(self): self.assertEqual( rewrite_topic( "pre | RC bug count: 1 | Stable RC bug count: 3 | post", "RC bug count", 2, ), "pre | RC bug count: 2 | Stable RC bug count: 3 | post", )
def _topic_callback(self): sections = { self.testing_rc_bugs.get_number_bugs: "RC bug count", self.stable_rc_bugs.get_number_bugs: "stable RC bug count", self.new_queue.get_size: "NEW queue", self.new_queue.get_backports_size: "backports NEW queue", self.rm_queue.get_size: "RM queue", self.dinstall.get_status: "dinstall", } channels = set() with self.topic_lock: values = {} for callback, prefix in sections.items(): new_value = callback() if new_value is not None: values[prefix] = new_value for channel in self.irc.state.channels: new_topic = topic = self.irc.state.getTopic(channel) for prefix, value in values.items(): new_topic = rewrite_topic(new_topic, prefix, value) if topic != new_topic: self.queued_topics[channel] = new_topic if channel not in channels: log.info("Queueing change of topic in #%s to '%s'" % (channel, new_topic)) channels.add(channel) for channel in channels: event_name = "{}_topic".format(channel) try: schedule.removeEvent(event_name) except KeyError: pass def update_topic(channel=channel): self._update_topic(channel) schedule.addEvent(update_topic, time.time() + 60, event_name)
def _topic_callback(self): sections = { self.testing_rc_bugs.get_number_bugs: 'RC bug count', self.stable_rc_bugs.get_number_bugs: 'stable RC bug count', self.new_queue.get_size: 'NEW queue', self.new_queue.get_backports_size: 'backports NEW queue', self.rm_queue.get_size: 'RM queue', self.dinstall.get_status: 'dinstall' } channels = set() with self.topic_lock: values = {} for callback, prefix in sections.items(): new_value = callback() if new_value is not None: values[prefix] = new_value for channel in self.irc.state.channels: new_topic = topic = self.irc.state.getTopic(channel) for prefix, value in values.items(): new_topic = rewrite_topic(new_topic, prefix, value) if topic != new_topic: self.queued_topics[channel] = new_topic if channel not in channels: log.info("Queueing change of topic in #%s to '%s'" % (channel, new_topic)) channels.add(channel) for channel in channels: event_name = '{}_topic'.format(channel) try: schedule.removeEvent(event_name) except KeyError: pass def update_topic(channel=channel): self._update_topic(channel) schedule.addEvent(update_topic, time.time() + 60, event_name)
def testEmbedded(self): self.assertEqual( rewrite_topic("pre | RC bug count: 1 | post", "RC bug count", 2), "pre | RC bug count: 2 | post")
def testSimple(self): self.assertEqual(rewrite_topic("RC bug count: 1", "RC bug count", 2), "RC bug count: 2")
def testEmpty(self): self.assertEqual(rewrite_topic("", "", 0), "")
def testEmbedded(self): self.assertEqual(rewrite_topic("pre RC bug count: 1 post", "RC bug count:", 2), "pre RC bug count: 2 post")
def testSimple(self): self.assertEqual(rewrite_topic("RC bug count: 1", "RC bug count:", 2), "RC bug count: 2")
def testEmbedded2(self): self.assertEqual(rewrite_topic("pre | RC bug count: 1 | Stable RC bug count: 3 | post", "RC bug count", 2), "pre | RC bug count: 2 | Stable RC bug count: 3 | post")