code: def test_poke_batch_messages(self, mocked_context):
      messages = ["hello", "brave", "world"]
      self.sqs_client.create_queue(QueueName=QUEUE_NAME)
      # Do publish 3 messages
      for message in messages:
          self.sqs_client.send_message(
              QueueUrl=QUEUE_URL, MessageBody=message
          )
  
      # Init batch sensor to get 1 message for each SQS poll and perform 3 polls
      sensor = SqsSensor(
          **self.default_op_kwargs, max_messages=1, num_batches=3
      )
      assert sensor.poke(mocked_context)
  
      # expect all messages are retrieved
      mocked_xcom_push = mocked_context["ti"].xcom_push
      assert mocked_xcom_push.call_count == 1
      call_args, call_kwargs = (
          mocked_xcom_push.call_args.args,
          mocked_xcom_push.call_args.kwargs,
      )
      assert not call_args
      assert "key" in call_kwargs and call_kwargs["key"] == "messages"
      assert "value" in call_kwargs
      xcom_value = call_kwargs["value"]
      assert len(xcom_value) == 3
      received_messages = list(map(lambda x: x["Body"], xcom_value))
      for message in messages:
          assert message in received_messages
  
imports: from __future__ import annotations
  import json
  from unittest import mock
  import pytest
  from moto import mock_sqs
  from airflow.exceptions import AirflowException, AirflowSkipException, TaskDeferred
  from airflow.providers.amazon.aws.hooks.sqs import SqsHook
  from airflow.providers.amazon.aws.sensors.sqs import SqsSensor
label_desc: Use image node_id 15 for calling the TestSqsSensor obj's underlying member method code with example usage: obj.test_poke_batch_messages(mocked_context) without return types