Once TaskGroups (https://airflow.readthedocs.io/en/latest/concepts.html#taskgroup) that would be released in Airflow 2.0 reach feature parity with SubDags and we have wide adoption and feedback from users about Taskgroups we should deprecate Subdags and remove them eventually in Airflow 3.0.

Discussion Thread: https://lists.apache.org/thread.html/ra52746f9c8274469d343b5f0251199de776e75ab75ded6830886fb6a%40%3Cdev.airflow.apache.org%3E
tests/operators/test_subdag_operator.py
def setUp(self):
        clear_db_runs()
        self.dag_run_running = DagRun()
        self.dag_run_running.state = State.RUNNING
        self.dag_run_success = DagRun()
        self.dag_run_success.state = State.SUCCESS
        self.dag_run_failed = DagRun()
        self.dag_run_failed.state = State.FAILED
    def test_subdag_name(self):
        """
        Subdag names must be {parent_dag}.{subdag task}
        """
        dag = DAG('parent', default_args=default_args)
        subdag_good = DAG('parent.test', default_args=default_args)
        subdag_bad1 = DAG('parent.bad', default_args=default_args)
        subdag_bad2 = DAG('bad.test', default_args=default_args)
        subdag_bad3 = DAG('bad.bad', default_args=default_args)
        SubDagOperator(task_id='test', dag=dag, subdag=subdag_good)
        with pytest.raises(AirflowException):
            SubDagOperator(task_id='test', dag=dag, subdag=subdag_bad1)
        with pytest.raises(AirflowException):
            SubDagOperator(task_id='test', dag=dag, subdag=subdag_bad2)
        with pytest.raises(AirflowException):
            SubDagOperator(task_id='test', dag=dag, subdag=subdag_bad3)
    def test_subdag_in_context_manager(self):