test_tasks.py 636 B

1234567891011121314151617181920212223242526272829
  1. from direct.task import Task
  2. import random
  3. taskMgr = Task.TaskManager()
  4. numTasks = 10000
  5. maxDelay = 20
  6. counter = 0
  7. def spawnNewTask():
  8. global counter
  9. counter = (counter + 1) % 1000
  10. delay = random.random() * maxDelay
  11. taskMgr.doMethodLater(delay, taskCallback, ("taskTester-%s" % counter))
  12. def taskCallback(task):
  13. randNum = int(round(random.random() * 1000))
  14. n = f"taskTester-{randNum}"
  15. taskMgr.remove(n)
  16. spawnNewTask()
  17. spawnNewTask()
  18. return Task.done
  19. def test_tasks():
  20. taskMgr.removeTasksMatching("taskTester*")
  21. for i in range(numTasks):
  22. spawnNewTask()
  23. taskMgr.destroy()