code: def test_remove_all_tags(self, mock_get_conn):
      mock_get_conn.return_value.get_crawler.return_value = {
          "Crawler": mock_config
      }
      mock_get_conn.return_value.get_tags.return_value = {
          "Tags": mock_config["Tags"]
      }
  
      assert self.hook.update_tags(mock_crawler_name, {}) is True
      mock_get_conn.return_value.get_tags.assert_called_once_with(
          ResourceArn=self.crawler_arn
      )
      mock_get_conn.return_value.tag_resource.assert_not_called()
      mock_get_conn.return_value.untag_resource.assert_called_once_with(
          ResourceArn=self.crawler_arn, TagsToRemove=["test", "bar"]
      )
  
imports: from __future__ import annotations
  from copy import deepcopy
  from typing import TYPE_CHECKING
  from unittest import mock
  from moto import mock_sts
  from moto.core import DEFAULT_ACCOUNT_ID
  from airflow.providers.amazon.aws.hooks.glue_crawler import GlueCrawlerHook
label_desc: Use image node_id 8 for calling the TestGlueCrawlerHook obj's underlying member method code with example usage: obj.test_remove_all_tags(mock_get_conn) without return types