def test_loop_slow2(self): """ slow tasks delay can be configured """ import pypeman.debug pypeman.debug.enable_slow_log_stats() self.setup_evt_loop(slow_cb_duration=0.05) stats = pypeman.debug.stats # logger = self.logger # get default test logger # handler = self.loghandler # get test log handler tst_logger = logging.getLogger('tests.debug.main_loop.slow') print(tst_logger.handlers) loop = self.loop chan = BaseChannel(name="test_loop_slow2", loop=loop) n1 = SimpleTestNode(delay=0.03, async_delay=0, logger=tst_logger, loop=loop) n2 = SimpleTestNode(delay=0.06, logger=tst_logger, loop=loop) chan.add(n1) chan.add(n2) msg = generate_msg() # Launch channel processing self.loop.run_until_complete(chan.start()) self.loop.run_until_complete(chan.handle(msg)) # handler.show_entries() self.assertEqual(len(stats), 1, "should have 1 slow tasks, not %d" % len(stats)) pypeman.debug.show_slow_log_stats() self.loop.close()
def test_loop_slow(self): """ main loop logs slow tasks """ import pypeman.debug pypeman.debug.enable_slow_log_stats() stats = pypeman.debug.stats self.setup_evt_loop() # logger = self.logger # get default test logger # handler = self.loghandler # get test log handler tst_logger = logging.getLogger('tests.debug.main_loop.slow') print("HANDLERS", tst_logger.handlers) loop = self.loop chan = BaseChannel(name="test_loop_slow", loop=loop) n1 = SimpleTestNode(delay=0.01, async_delay=0, logger=tst_logger, loop=loop) n2 = SimpleTestNode(delay=0.12, async_delay=0, logger=tst_logger, loop=loop) n3 = SimpleTestNode(delay=0.11, async_delay=0, logger=tst_logger, loop=loop) chan.add(n1) chan.add(n2) chan.add(n3) msg = generate_msg() # Launch channel processing t0 = time.time() print("start channel %.4f" % (time.time() - t0)) self.loop.run_until_complete(chan.start()) print("channel started %.4f" % (time.time() - t0)) self.loop.run_until_complete(chan.handle(msg)) print("msg handled %.4f" % (time.time() - t0)) # handler.show_entries() self.assertEqual(len(stats), 2, "should have 2 slow tasks, not %d" % len(stats)) self.loop.close()