class_docstr: Testings for Sql Lab
code: def test_sql_json_dml_disallowed(self):
      self.login("admin")
  
      data = self.run_sql("DELETE FROM birth_names", "1")
      assert data == {
          "errors": [
              {
                  "message": "Only SELECT statements are allowed against this database.",
                  "error_type": SupersetErrorType.DML_NOT_ALLOWED_ERROR,
                  "level": ErrorLevel.ERROR,
                  "extra": {
                      "issue_codes": [
                          {
                              "code": 1022,
                              "message": "Issue 1022 - Database does not allow data manipulation.",
                          }
                      ]
                  },
              }
          ]
      }
  
imports: import json
  from datetime import datetime
  import pytest
  from celery.exceptions import SoftTimeLimitExceeded
  from parameterized import parameterized
  from unittest import mock
  import prison
  from freezegun import freeze_time
  from superset import db, security_manager
  from superset.connectors.sqla.models import SqlaTable
  from superset.db_engine_specs import BaseEngineSpec
  from superset.db_engine_specs.hive import HiveEngineSpec
  from superset.db_engine_specs.presto import PrestoEngineSpec
  from superset.errors import ErrorLevel, SupersetError, SupersetErrorType
  from superset.exceptions import SupersetErrorException
  from superset.models.sql_lab import Query, SavedQuery
  from superset.result_set import SupersetResultSet
  from superset.sqllab.limiting_factor import LimitingFactor
  from superset.sql_lab import cancel_query, execute_sql_statements, apply_limit_if_exists
  from superset.sql_parse import CtasMethod
  from superset.utils.core import backend, datetime_to_epoch
  from superset.utils.database import get_example_database, get_main_database
  from .base_tests import SupersetTestCase
  from .conftest import CTAS_SCHEMA_NAME
  from tests.integration_tests.fixtures.birth_names_dashboard import load_birth_names_dashboard_with_slices, load_birth_names_data
  from tests.integration_tests.fixtures.users import create_gamma_sqllab_no_data
label_desc: Use image node_id 4 for calling the TestSqlLab obj's underlying member method code with example usage: obj.test_sql_json_dml_disallowed() without return types