예제 #1
0
    def test_apply_now(self):
        def task(pt):
            pt.context['count'] += 1
            return pt.context['count']

        pt = PeriodicTask('test', 99, task)
        pt.context['count'] = 0

        with self.run_periodic_task_context(pt):
            sleep(0.01)
            promise = pt.apply_now()
            assert promise.result(0.01) is 2
예제 #2
0
    def test_apply_now_with_failure(self):
        class MyException(Exception):
            pass

        def task(pt):
            if pt.context['apply_now_mode']:
                raise MyException()

        pt = PeriodicTask('test', 99, task)
        pt.context['apply_now_mode'] = False
        with self.run_periodic_task_context(pt):
            sleep(0.01)
            pt.context['apply_now_mode'] = True
            promise = pt.apply_now()
            assert isinstance(promise.exception(), MyException)