code: def test_construct_ingest_query(self):
      operator = HiveToDruidOperator(
          task_id="hive_to_druid", dag=self.dag, **self.hook_config
      )
  
      provided_index_spec = operator.construct_ingest_query(
          **self.index_spec_config
      )
  
      expected_index_spec = {
          "hadoopDependencyCoordinates": self.hook_config[
              "hadoop_dependency_coordinates"
          ],
          "type": "index_hadoop",
          "spec": {
              "dataSchema": {
                  "metricsSpec": self.hook_config["metric_spec"],
                  "granularitySpec": {
                      "queryGranularity": self.hook_config[
                          "query_granularity"
                      ],
                      "intervals": self.hook_config["intervals"],
                      "type": "uniform",
                      "segmentGranularity": self.hook_config[
                          "segment_granularity"
                      ],
                  },
                  "parser": {
                      "type": "string",
                      "parseSpec": {
                          "columns": self.index_spec_config["columns"],
                          "dimensionsSpec": {
                              "dimensionExclusions": [],
                              "dimensions": self.index_spec_config[
                                  "columns"
                              ],
                              "spatialDimensions": [],
                          },
                          "timestampSpec": {
                              "column": self.hook_config["ts_dim"],
                              "format": "auto",
                          },
                          "format": "tsv",
                      },
                  },
                  "dataSource": self.hook_config["druid_datasource"],
              },
              "tuningConfig": {
                  "type": "hadoop",
                  "jobProperties": self.hook_config["job_properties"],
                  "partitionsSpec": {
                      "type": "hashed",
                      "targetPartitionSize": self.hook_config[
                          "target_partition_size"
                      ],
                      "numShards": self.hook_config["num_shards"],
                  },
              },
              "ioConfig": {
                  "inputSpec": {
                      "paths": self.index_spec_config["static_path"],
                      "type": "static",
                  },
                  "type": "hadoop",
              },
          },
      }
  
      # Make sure it is like we expect it
      assert provided_index_spec == expected_index_spec
  
imports: from __future__ import annotations
  import requests
  from airflow.models.dag import DAG
  from airflow.providers.apache.druid.transfers.hive_to_druid import HiveToDruidOperator
label_desc: Use image node_id 2 for calling the TestDruidHook obj's underlying member method code with example usage: obj.test_construct_ingest_query() without return types