code: def test_poll_operation_until_done(
      self, mock_get_operation, mock_time_sleep
  ):
      name = "name"
      polling_interval_in_seconds = 10
  
      result = self.datastore_hook.poll_operation_until_done(
          name, polling_interval_in_seconds
      )
  
      mock_get_operation.assert_has_calls([call(name), call(name)])
      mock_time_sleep.assert_called_once_with(
          polling_interval_in_seconds
      )
      assert result == {
          "metadata": {"common": {"state": "NOT PROCESSING"}}
      }
  
imports: from __future__ import annotations
  from unittest import mock
  from unittest.mock import call, patch
  import pytest
  from airflow.exceptions import AirflowException
  from airflow.providers.google.cloud.hooks.datastore import DatastoreHook
label_desc: Use image node_id 18 for calling the TestDatastoreHook obj's underlying member method code with example usage: obj.test_poll_operation_until_done(mock_get_operation, mock_time_sleep) without return types