TaskHandler.active method created

TaskHandler.active method created to check if a task is currently active.

test_delay unit test passes.
This commit is contained in:
davewiththenicehat 2021-04-18 09:59:45 -04:00
parent af44237838
commit bbc60b0340
2 changed files with 35 additions and 0 deletions

View file

@ -331,23 +331,28 @@ class TestDelay(EvenniaTest):
self.char1.ndb.dummy_var = False
# test a persistent deferral, that completes after delay time
task_id = utils.delay(timedelay, dummy_func, self.char1.dbref, persistent=True)
self.assertTrue(_TASK_HANDLER.active(task_id))
_TASK_HANDLER.clock.advance(timedelay) # make time pass
self.assertEqual(self.char1.ndb.dummy_var, 'dummy_func ran')
self.char1.ndb.dummy_var = False
# test a non persisten deferral, that completes after delay time.
utils.delay(timedelay, dummy_func, self.char1.dbref)
self.assertTrue(_TASK_HANDLER.active(task_id))
_TASK_HANDLER.clock.advance(timedelay) # make time pass
self.assertEqual(self.char1.ndb.dummy_var, 'dummy_func ran')
self.char1.ndb.dummy_var = False
# test a non persisten deferral, with a short timedelay
utils.delay(.1, dummy_func, self.char1.dbref)
self.assertTrue(_TASK_HANDLER.active(task_id))
_TASK_HANDLER.clock.advance(.1) # make time pass
self.assertEqual(self.char1.ndb.dummy_var, 'dummy_func ran')
self.char1.ndb.dummy_var = False
# test canceling a deferral.
# after this the task_id 1 remains used by this canceled but unused task
task_id = utils.delay(timedelay, dummy_func, self.char1.dbref)
self.assertTrue(_TASK_HANDLER.active(task_id))
success = _TASK_HANDLER.cancel(task_id)
self.assertFalse(_TASK_HANDLER.active(task_id))
self.assertTrue(success)
self.assertTrue(_TASK_HANDLER.exists(task_id))
_TASK_HANDLER.clock.advance(timedelay) # make time pass
@ -355,15 +360,19 @@ class TestDelay(EvenniaTest):
self.char1.ndb.dummy_var = False
# test removing an active task
task_id = utils.delay(timedelay, dummy_func, self.char1.dbref)
self.assertTrue(_TASK_HANDLER.active(task_id))
success = _TASK_HANDLER.remove(task_id)
self.assertFalse(_TASK_HANDLER.active(task_id))
_TASK_HANDLER.clock.advance(timedelay) # make time pass
self.assertEqual(self.char1.ndb.dummy_var, False)
self.assertFalse(_TASK_HANDLER.exists(task_id))
self.char1.ndb.dummy_var = False
# test removing a canceled active task
task_id = utils.delay(timedelay, dummy_func, self.char1.dbref)
self.assertTrue(_TASK_HANDLER.active(task_id))
deferal_inst = _TASK_HANDLER.get_deferred(task_id)
deferal_inst.cancel()
self.assertFalse(_TASK_HANDLER.active(task_id))
success = _TASK_HANDLER.remove(task_id)
_TASK_HANDLER.clock.advance(timedelay) # make time pass
self.assertEqual(self.char1.ndb.dummy_var, False)