code: def test_fail_poke(
      self,
      mock_batch_client,
      batch_compute_environment_sensor: BatchComputeEnvironmentSensor,
      compute_env,
      error_message,
      soft_fail,
      expected_exception,
  ):
      mock_batch_client.describe_compute_environments.return_value = {
          "computeEnvironments": compute_env
      }
      batch_compute_environment_sensor.soft_fail = soft_fail
      with pytest.raises(expected_exception, match=error_message):
          batch_compute_environment_sensor.poke({})
  
imports: from __future__ import annotations
  from unittest import mock
  import pytest
  from airflow.exceptions import AirflowException, AirflowSkipException, TaskDeferred
  from airflow.providers.amazon.aws.hooks.batch_client import BatchClientHook
  from airflow.providers.amazon.aws.sensors.batch import BatchComputeEnvironmentSensor, BatchJobQueueSensor, BatchSensor
  from airflow.providers.amazon.aws.triggers.batch import BatchJobTrigger
label_desc: Use image node_id 5 for calling the TestBatchComputeEnvironmentSensor obj's underlying member method code with example usage: obj.test_fail_poke(mock_batch_client, batch_compute_environment_sensor, compute_env, error_message, soft_fail, expected_exception) without return types