Пример #1
0
    def test_with_comparer(self):
        now = datetime.utcnow()

        def reverse_comparer (x, y):
            return y < x

        s = HistoricalScheduler(now, reverse_comparer)

        res = []

        s.schedule_absolute(now - timedelta(1000), lambda a, b: res.append(1))
        s.schedule_absolute(now - timedelta(2000), lambda a, b: res.append(2))

        s.start()

        assert_equals(res, [1,2])
Пример #2
0
    def test_is_enabled(self):
        s = HistoricalScheduler()

        self.assertEqual(False, s.is_enabled)

        def action(scheduler, state):
            self.assertEqual(True, s.is_enabled)
            s.stop()
            self.assertEqual(False, s.is_enabled)

        s.schedule(action)

        self.assertEqual(False, s.is_enabled)

        s.start()

        self.assertEqual(False, s.is_enabled)
Пример #3
0
    def test_is_enabled(self):
        s = HistoricalScheduler()

        self.assertEqual(False, s.is_enabled)

        def action(scheduler, state):
            self.assertEqual(True, s.is_enabled)
            s.stop()
            self.assertEqual(False, s.is_enabled)

        s.schedule(action)

        self.assertEqual(False, s.is_enabled)

        s.start()

        self.assertEqual(False, s.is_enabled)
Пример #4
0
    def test_cancellation(self):
        s = HistoricalScheduler()

        list = []

        d = s.schedule_absolute(
            time(2), lambda a, b: list.append(Timestamped(2, s.now)))

        def action(scheduler, state):
            list.append(Timestamped(0, s.now))
            d.dispose()

        s.schedule_absolute(time(1), action)

        s.start()

        assert_equals(list, [Timestamped(0, time(1))])
Пример #5
0
    def test_cancellation(self):
        s = HistoricalScheduler()

        list = []

        d = s.schedule_absolute(time(2), lambda a,b: list.append(Timestamped(2, s.now)))

        def action(scheduler, state):
            list.append(Timestamped(0, s.now))
            d.dispose()

        s.schedule_absolute(time(1), action)

        s.start()

        assert_equals(list, [
            Timestamped(0, time(1))
        ])
Пример #6
0
    def test_order(self):
        s = HistoricalScheduler()

        list = []

        s.schedule_absolute(time(2), lambda a, b: list.append(Timestamped(2, s.now)))

        s.schedule_absolute(time(3), lambda a, b: list.append(Timestamped(3, s.now)))

        s.schedule_absolute(time(1), lambda a, b: list.append(Timestamped(0, s.now)))
        s.schedule_absolute(time(1), lambda a, b: list.append(Timestamped(1, s.now)))

        s.start()

        assert_equals(list, [
            Timestamped(0, time(1)),
            Timestamped(1, time(1)),
            Timestamped(2, time(2)),
            Timestamped(3, time(3))
        ])
Пример #7
0
    def test_order(self):
        s = HistoricalScheduler()

        list = []

        s.schedule_absolute(time(2), lambda a, b: list.append(Timestamped(2, s.now)))

        s.schedule_absolute(time(3), lambda a, b: list.append(Timestamped(3, s.now)))

        s.schedule_absolute(time(1), lambda a, b: list.append(Timestamped(0, s.now)))
        s.schedule_absolute(time(1), lambda a, b: list.append(Timestamped(1, s.now)))

        s.start()

        assert_equals(list, [
            Timestamped(0, time(1)),
            Timestamped(1, time(1)),
            Timestamped(2, time(2)),
            Timestamped(3, time(3))
        ])
Пример #8
0
    def test_start_stop(self):
        s = HistoricalScheduler()
        list = []

        s.schedule_absolute(time(0),
                            lambda sc, st: list.append(Timestamped(1, s.now)))
        s.schedule_absolute(time(1),
                            lambda sc, st: list.append(Timestamped(2, s.now)))
        s.schedule_absolute(time(2), lambda sc, st: s.stop())
        s.schedule_absolute(time(3),
                            lambda sc, st: list.append(Timestamped(3, s.now)))
        s.schedule_absolute(time(4), lambda sc, st: s.stop())
        s.schedule_absolute(time(5), lambda sc, st: s.start())
        s.schedule_absolute(time(6),
                            lambda sc, st: list.append(Timestamped(4, s.now)))

        s.start()

        self.assertEqual(time(2), s.now)
        self.assertEqual(time(2), s.clock)

        s.start()

        self.assertEqual(time(4), s.now)
        self.assertEqual(time(4), s.clock)

        s.start()

        self.assertEqual(time(6), s.now)
        self.assertEqual(time(6), s.clock)

        s.start()

        self.assertEqual(time(6), s.now)
        self.assertEqual(time(6), s.clock)

        assert_equals(list, [
            Timestamped(1, time(0)),
            Timestamped(2, time(1)),
            Timestamped(3, time(3)),
            Timestamped(4, time(6))
        ])
Пример #9
0
    def test_start_stop(self):
        s = HistoricalScheduler()
        list = []

        s.schedule_absolute(time(0), lambda sc,st: list.append(Timestamped(1, s.now)))
        s.schedule_absolute(time(1), lambda sc,st: list.append(Timestamped(2, s.now)))
        s.schedule_absolute(time(2), lambda sc,st: s.stop())
        s.schedule_absolute(time(3), lambda sc,st: list.append(Timestamped(3, s.now)))
        s.schedule_absolute(time(4), lambda sc,st: s.stop())
        s.schedule_absolute(time(5), lambda sc,st: s.start())
        s.schedule_absolute(time(6), lambda sc,st: list.append(Timestamped(4, s.now)))

        s.start()

        self.assertEqual(time(2), s.now)
        self.assertEqual(time(2), s.clock)

        s.start()

        self.assertEqual(time(4), s.now)
        self.assertEqual(time(4), s.clock)

        s.start()

        self.assertEqual(time(6), s.now)
        self.assertEqual(time(6), s.clock)

        s.start()

        self.assertEqual(time(6), s.now)
        self.assertEqual(time(6), s.clock)

        assert_equals(list, [
            Timestamped(1, time(0)),
            Timestamped(2, time(1)),
            Timestamped(3, time(3)),
            Timestamped(4, time(6))
        ])