Ensure that this works:

```python
@setup
def mytask():
    print("I am a setup task")

with dag_maker() as dag:
    mytask.override(task_id='newtask')

assert len(dag.task_group.children) == 1
setup_task = dag.task_group.children["newtask"]
assert setup_task._is_setup
```
and teardown also works
"""Number of instances a task in this group should be mapped to at run time.
        This considers both literal and non-literal mapped arguments, and the
        result is therefore available when all depended tasks have finished. The
        return value should be identical to ``parse_time_mapped_ti_count`` if
        all mapped arguments are literal.
        If this group is inside mapped task groups, all the nested counts are
        multiplied and accounted.
        :meta private:
        :raise NotFullyPopulated: If upstream tasks are not all complete yet.
        :return: Total number of mapped TIs this task should have.
        """
        groups = self.iter_mapped_task_groups()
        return functools.reduce(
            operator.mul,
            (g._expand_input.get_total_map_length(run_id, session=session) for g in groups),
        )
class TaskGroupContext: