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
"dependency_id": "task1",
                    },
                    {
                        "source": "test",
                        "target": "nothing",
                        "dependency_type": "abc",
                        "dependency_id": "hello",
                    },
                ],
                key=lambda x: tuple(x.values()),
            )
    def test_dag_deps_datasets(self):
        """
        Check that dag_dependencies node is populated correctly for a DAG with datasets.
        """
        from airflow.sensors.external_task import ExternalTaskSensor
        d1 = Dataset("d1")
        d2 = Dataset("d2")
        d3 = Dataset("d3")
        d4 = Dataset("d4")
        execution_date = datetime(2020, 1, 1)
        with DAG(dag_id="test", start_date=execution_date, schedule=[d1]) as dag:
            ExternalTaskSensor(
                task_id="task1",
                external_dag_id="external_dag_id",
                mode="reschedule",
            )
            BashOperator(task_id="dataset_writer", bash_command="echo hello", outlets=[d2, d3])
            @dag.task(outlets=[d4])
            def other_dataset_writer(x):