code: def test_normalize_sql(self):
      assert (
          SQLParser.normalize_sql("select * from asdf")
          == "select * from asdf"
      )
  
      assert (
          SQLParser.normalize_sql(
              ["select * from asdf", "insert into asdf values (1,2,3)"]
          )
          == "select * from asdf;\ninsert into asdf values (1,2,3)"
      )
  
      assert (
          SQLParser.normalize_sql(
              "select * from asdf;insert into asdf values (1,2,3)"
          )
          == "select * from asdf;\ninsert into asdf values (1,2,3)"
      )
  
      assert (
          SQLParser.normalize_sql(
              """CREATE FUNCTION somefunc() RETURNS integer AS $$
                  BEGIN
                      ...
                  END;
                  $$ LANGUAGE plpgsql```"""
          )
          == """CREATE FUNCTION somefunc() RETURNS integer AS $$
                  BEGIN
                      ...
                  END;
                  $$ LANGUAGE plpgsql```"""
      )
  
file_path: airflow/tests/providers/openlineage/utils/test_sqlparser.py
imports: from __future__ import annotations
  from unittest import mock
  from unittest.mock import MagicMock
  import pytest
  from openlineage.client.facet import ColumnLineageDatasetFacet, ColumnLineageDatasetFacetFieldsAdditional, ColumnLineageDatasetFacetFieldsAdditionalInputFields, SchemaDatasetFacet, SchemaField, SqlJobFacet
  from openlineage.client.run import Dataset
  from openlineage.common.sql import DbTableMeta
  from airflow.providers.openlineage.extractors import OperatorLineage
  from airflow.providers.openlineage.sqlparser import DatabaseInfo, SQLParser
label_desc: Use image node_id 2 for calling the TestSQLParser obj's underlying member method code with example usage: obj.test_normalize_sql() without return types