code: def test_task_group_context_mix():
      """Test cases to check nested TaskGroup context manager with taskgroup decorator"""
  
      from airflow.decorators import task
  
      def task_start():
          """Dummy Task which is First Task of Dag"""
          return "[Task_start]"
  
      def task_end():
          """Dummy Task which is Last Task of Dag"""
          print("[ Task_End  ]")
  
      # Creating Tasks
      @task
      def task_1(value):
          """Dummy Task1"""
          return f"[ Task1 {value} ]"
  
      @task
      def task_2(value):
          """Dummy Task2"""
          return f"[ Task2 {value} ]"
  
      @task
      def task_3(value):
          """Dummy Task3"""
          print(f"[ Task3 {value} ]")
  
      # Creating TaskGroups
      @task_group_decorator
      def section_2(value):
          """TaskGroup for grouping related Tasks"""
          return task_3(task_2(task_1(value)))
  
      execution_date = pendulum.parse("20201109")
      with DAG(
          dag_id="example_task_group_decorator_mix",
          start_date=execution_date,
          tags=["example"],
      ) as dag:
          t_start = PythonOperator(
              task_id="task_start", python_callable=task_start, dag=dag
          )
  
          with TaskGroup("section_1", tooltip="section_1") as section_1:
              sec_2 = section_2(t_start.output)
              task_s1 = EmptyOperator(task_id="task_1")
              task_s2 = BashOperator(
                  task_id="task_2", bash_command="echo 1"
              )
              task_s3 = EmptyOperator(task_id="task_3")
  
              sec_2.set_downstream(task_s1)
              task_s1 >> [task_s2, task_s3]
  
          t_end = PythonOperator(
              task_id="task_end", python_callable=task_end, dag=dag
          )
          t_start >> section_1 >> t_end
  
      node_ids = {
          "id": None,
          "children": [
              {
                  "id": "section_1",
                  "children": [
                      {
                          "id": "section_1.section_2",
                          "children": [
                              {"id": "section_1.section_2.task_1"},
                              {"id": "section_1.section_2.task_2"},
                              {"id": "section_1.section_2.task_3"},
                          ],
                      },
                      {"id": "section_1.task_1"},
                      {"id": "section_1.task_2"},
                      {"id": "section_1.task_3"},
                      {"id": "section_1.upstream_join_id"},
                      {"id": "section_1.downstream_join_id"},
                  ],
              },
              {"id": "task_end"},
              {"id": "task_start"},
          ],
      }
  
      assert (
          extract_node_id(task_group_to_dict(dag.task_group))
          == node_ids
      )
  
imports: from __future__ import annotations
  from datetime import timedelta
  import pendulum
  import pytest
  from airflow.decorators import dag, setup, task, task_group, teardown
  from airflow.exceptions import TaskAlreadyInTaskGroup
  from airflow.models.baseoperator import BaseOperator
  from airflow.models.dag import DAG
  from airflow.models.xcom_arg import XComArg
  from airflow.operators.bash import BashOperator
  from airflow.operators.empty import EmptyOperator
  from airflow.operators.python import PythonOperator
  from airflow.utils.dag_edges import dag_edges
  from airflow.utils.task_group import TaskGroup, task_group_to_dict
  from tests.models import DEFAULT_DATE
label_desc: Use image node_id 16 for calling a global function with example usage: test_task_group_context_mix() and returns: str, str, value, str, str, value, str, task_3