code: def test_service_waiters(self):
      hook = EmrHook(aws_conn_id=None)
      official_waiters = hook.conn.waiter_names
      custom_waiters = [
          "job_flow_waiting",
          "job_flow_terminated",
          "notebook_running",
          "notebook_stopped",
          "step_wait_for_terminal",
          "steps_wait_for_terminal",
      ]
  
      assert sorted(hook.list_waiters()) == sorted(
          [*official_waiters, *custom_waiters]
      )
  
imports: from __future__ import annotations
  import re
  from unittest import mock
  import boto3
  import pytest
  from botocore.exceptions import WaiterError
  from moto import mock_emr
  from airflow.exceptions import AirflowException
  from airflow.providers.amazon.aws.hooks.emr import EmrHook
label_desc: Use image node_id 1 for calling the TestEmrHook obj's underlying member method code with example usage: obj.test_service_waiters() without return types