def METHOD_NAME(self):
    self.assertEqual(2, len(self.workflow.get_tasks(TaskState.READY)))
    self.do_next_named_step('Choice 1', choice='Yes')
    self.workflow.do_engine_steps()
    self.do_next_named_step('Yes Task')
    self.workflow.do_engine_steps()
    self.assertRaises(AssertionError, self.do_next_named_step, 'Done')
    ready_tasks = self.workflow.get_tasks(TaskState.READY)
    self.assertEqual(2, len(ready_tasks))
    self.assertEqual(
        'Repeated Task', ready_tasks[0].task_spec.bpmn_name)
    ready_tasks[0].run()
    self.workflow.do_engine_steps()
    # The inclusive gateway allows us through here, because there is no route for the other thread
    # that doesn't use the same sequence flow
    self.do_next_named_step('Done')
    self.workflow.do_engine_steps()
    self.do_next_named_step('Repeated Task')
    self.workflow.do_engine_steps()
    self.do_next_named_step('Done')
    self.workflow.do_engine_steps()
    self.assertEqual(0, len(self.workflow.get_tasks(TaskState.READY | TaskState.WAITING)))