code: def test_execute(self) -> None:
      # Repo folders
      repo_A_path = self.cache_dir / "repo_A"
      repo_A_path.mkdir()
      repo_B_path = self.cache_dir / "repo_B"
      repo_B_path.mkdir()
  
      # Refs files in repo_B
      refs_main_path = repo_B_path / "refs" / "main"
      refs_main_path.parent.mkdir(parents=True)
      refs_main_path.touch()
      refs_pr_1_path = repo_B_path / "refs" / "refs" / "pr" / "1"
      refs_pr_1_path.parent.mkdir(parents=True)
      refs_pr_1_path.touch()
  
      # Blobs files in repo_B
      (repo_B_path / "blobs").mkdir()
      blob_1 = repo_B_path / "blobs" / "blob_1"
      blob_2 = repo_B_path / "blobs" / "blob_2"
      blob_3 = repo_B_path / "blobs" / "blob_3"
      blob_1.touch()
      blob_2.touch()
      blob_3.touch()
  
      # Snapshot folders in repo_B
      snapshot_1 = repo_B_path / "snapshots" / "snapshot_1"
      snapshot_2 = repo_B_path / "snapshots" / "snapshot_2"
  
      snapshot_1.mkdir(parents=True)
      snapshot_2.mkdir()
  
      # Execute deletion
      # Delete repo_A + keep only blob_1, main ref and snapshot_1 in repo_B.
      DeleteCacheStrategy(
          expected_freed_size=123456,
          blobs={blob_2, blob_3},
          refs={refs_pr_1_path},
          repos={repo_A_path},
          snapshots={snapshot_2},
      ).execute()
  
      # Repo A deleted
      self.assertFalse(repo_A_path.exists())
      self.assertTrue(repo_B_path.exists())
  
      # Only `blob` 1 remains
      self.assertTrue(blob_1.exists())
      self.assertFalse(blob_2.exists())
      self.assertFalse(blob_3.exists())
  
      # Only ref `main` remains
      self.assertTrue(refs_main_path.exists())
      self.assertFalse(refs_pr_1_path.exists())
  
      # Only `snapshot_1` remains
      self.assertTrue(snapshot_1.exists())
      self.assertFalse(snapshot_2.exists())
  
imports: import os
  import tempfile
  import time
  import unittest
  from pathlib import Path
  from unittest.mock import Mock
  import pytest
  from huggingface_hub._snapshot_download import snapshot_download
  from huggingface_hub.commands.scan_cache import ScanCacheCommand
  from huggingface_hub.utils import DeleteCacheStrategy, HFCacheInfo, capture_output, scan_cache_dir
  from huggingface_hub.utils._cache_manager import CacheNotFound, _format_size, _format_timesince, _try_delete_path
  from .testing_constants import TOKEN
  from .testing_utils import rmtree_with_retry, with_production_testing, xfail_on_windows
label_desc: Use image node_id 1 for calling the TestDeleteStrategyExecute obj's underlying member method code with example usage: obj.test_execute() without return types