コード例 #1
0
 def test_recurring_event(self):
     event_scheduler = EventScheduler(TEST_THREAD, TestTimer.monotonic,
                                      TestTimer)
     TestTimer.set_event_scheduler(event_scheduler)
     event_scheduler.start()
     result_list = []
     event_scheduler.enter_recurring(5, 0, insert_into_list,
                                     ('A', result_list))
     TestTimer.advance_time(2)
     self.assertListEqual(result_list, [])
     TestTimer.advance_time(3)
     self.assertListEqual(result_list, ['A'])
     TestTimer.advance_time(5)
     self.assertListEqual(result_list, ['A', 'A'])
     event_scheduler.stop(True)
コード例 #2
0
 def test_multiple_events_built_in_timer(self):
     # We should test the built-in timer to make sure it's working as
     # expected. We can also test the hard stop being set to false, (the
     # event scheduler should execute all remaining events in the queue
     # before stopping).
     event_scheduler = EventScheduler(TEST_THREAD)
     event_scheduler.start()
     result_list = []
     event_scheduler.enter_recurring(1.2, 0, insert_into_list,
                                     ('#', result_list))
     event_scheduler.enterabs(0.2, 1, insert_into_list, ('A', result_list))
     event_scheduler.enterabs(0.4, 1, insert_into_list, ('B', result_list))
     event_scheduler.enterabs(0.7, 1, insert_into_list, ('C', result_list))
     event_scheduler.enterabs(1, 1, insert_into_list, ('D', result_list))
     event_scheduler.stop(False)
     self.assertListEqual(result_list, ['A', 'B', 'C', 'D', '#'])
コード例 #3
0
 def test_cancel_all_events(self):
     event_scheduler = EventScheduler(TEST_THREAD, TestTimer.monotonic,
                                      TestTimer)
     TestTimer.set_event_scheduler(event_scheduler)
     event_scheduler.start()
     result_list = []
     event_scheduler.enter_recurring(5, 0, insert_into_list,
                                     ('A', result_list))
     event_scheduler.enter_recurring(2, 0, insert_into_list,
                                     ('B', result_list))
     event_scheduler.enter(0, 0, insert_into_list, ('C', result_list))
     TestTimer.advance_time(1)
     self.assertListEqual(result_list, ['C'])
     event_scheduler.enter(1, 0, insert_into_list, ('D', result_list))
     TestTimer.advance_time(0.2)
     event_scheduler.cancel_all()
     self.assertListEqual(result_list, ['C'])
     event_scheduler.stop(False)
コード例 #4
0
    def test_event_scheduler_raises_invalid_priority(self):
        event_scheduler = EventScheduler(TEST_THREAD, TestTimer.monotonic,
                                         TestTimer)
        result_list = []

        # priority less than 0
        with self.assertRaises(ValueError):
            event_scheduler.enter(0, -1, insert_into_list, ('A', result_list))
        with self.assertRaises(ValueError):
            event_scheduler.enterabs(0, -1, insert_into_list,
                                     ('A', result_list))
        with self.assertRaises(ValueError):
            event_scheduler.enter_recurring(0, -1, insert_into_list,
                                            ('A', result_list))
        # priority > sys.maxsize
        with self.assertRaises(ValueError):
            event_scheduler.enter(0, sys.maxsize, insert_into_list,
                                  ('A', result_list))
        with self.assertRaises(ValueError):
            event_scheduler.enterabs(0, sys.maxsize, insert_into_list,
                                     ('A', result_list))
        with self.assertRaises(ValueError):
            event_scheduler.enter_recurring(0, sys.maxsize, insert_into_list,
                                            ('A', result_list))