code: def test_dag_run_link(self):
      from airflow.www.app import cached_app
  
      with cached_app(testing=True).test_request_context():
          html = str(
              utils.dag_run_link(
                  {
                      "dag_id": "<a&1>",
                      "run_id": "<b2>",
                      "execution_date": datetime.now(),
                  }
              )
          )
  
      assert "%3Ca%261%3E" in html
      assert "%3Cb2%3E" in html
      assert "<a&1>" not in html
      assert "<b2>" not in html
  
imports: from __future__ import annotations
  import itertools
  import re
  from datetime import datetime
  from unittest.mock import Mock
  from urllib.parse import parse_qs
  import pendulum
  import pytest
  from bs4 import BeautifulSoup
  from markupsafe import Markup
  from airflow.models import DagRun
  from airflow.utils import json
  from airflow.www import utils
  from airflow.www.utils import DagRunCustomSQLAInterface, json_f, wrapped_markdown
  from tests.test_utils.config import conf_vars
label_desc: Use image node_id 15 for calling the TestUtils obj's underlying member method code with example usage: obj.test_dag_run_link() without return types