### Apache Airflow version

2.1.3 (latest released)

### Operating System

Debian Buster

### Versions of Apache Airflow Providers

_No response_

### Deployment

Managed Services (Astronomer, Composer, MWAA etc.)

### Deployment details

Running `quay.io/astronomer/ap-airflow:2.1.3-buster` Docker image

### What happened

In the task attributes view of a BashOperator, the `template_ext` row doesn't show any value, while I would expect to see `('.sh', '.bash')`.

![image](https://user-images.githubusercontent.com/6249654/131467817-8620f68d-0f3d-491d-ad38-cbf5b91cdcb3.png)


### What you expected to happen

Expect to see correct `template_ext` value

### How to reproduce

Run a BashOperator and browse to Instance Details --> scroll down to `template_ext` row

### Anything else

Spent a little time trying to figure out what could be the reason, but haven't found the problem yet. Therefore created issue to track.

### Are you willing to submit PR?

- [X] Yes I am willing to submit a PR!

### Code of Conduct

- [X] I agree to follow this project's [Code of Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)

tests/serialization/test_dag_serialization.py
with TaskGroup("task_group_middle") as task_group_middle:
                _ = DummyOperator(task_id="task_middle")
            with TaskGroup("task_group_down1") as task_group_down1:
                _ = DummyOperator(task_id="task_down1")
            with TaskGroup("task_group_down2") as task_group_down2:
                _ = DummyOperator(task_id="task_down2")
            end = DummyOperator(task_id='end')
            start >> task_group_up1
            start >> task_group_up2
            task_group_up1 >> task_group_middle
            task_group_up2 >> task_group_middle
            task_group_middle >> task_group_down1
            task_group_middle >> task_group_down2
            task_group_down1 >> end
            task_group_down2 >> end
        task_group_middle_dict = SerializedTaskGroup.serialize_task_group(
            dag.task_group.children["task_group_middle"]
        )
        upstream_group_ids = task_group_middle_dict["upstream_group_ids"]
        assert upstream_group_ids == ['task_group_up1', 'task_group_up2']
        upstream_task_ids = task_group_middle_dict["upstream_task_ids"]
        assert upstream_task_ids == ['task_group_up1.task_up1', 'task_group_up2.task_up2']
        downstream_group_ids = task_group_middle_dict["downstream_group_ids"]
        assert downstream_group_ids == ['task_group_down1', 'task_group_down2']
        task_group_down1_dict = SerializedTaskGroup.serialize_task_group(
            dag.task_group.children["task_group_down1"]
        )
        downstream_task_ids = task_group_down1_dict["downstream_task_ids"]
        assert downstream_task_ids == ['end']
    def test_edge_info_serialization(self):