code: def test_download_dataset_full_or_partial(
      download_full,
      download_partial,
      attributes,
      dest_exists,
      force,
      called_partial,
  ):  # pylint: disable=too-many-arguments
      """Test that _download_dataset calls ``_download_partial()`` if ``attributes`` is not None,
      or the dataset already exists at ``dest``, and that it only calls ``_download_full()`` if
      the dataset does not exist at ``dest`` and ``attributes`` is None.
      """
  
      dest = MagicMock()
      dest.exists.return_value = dest_exists
  
      pennylane.data.data_manager._download_dataset(
          "dataset/path",
          attributes=attributes,
          dest=dest,
          force=force,
          block_size=1,
      )
  
      assert download_partial.called is called_partial
      assert download_full.called is not called_partial
  
imports: import os
  from pathlib import Path, PosixPath
  from unittest.mock import MagicMock, patch
  import pytest
  import requests
  import pennylane
  import pennylane.data.data_manager
  from pennylane.data import Dataset
  from pennylane.data.data_manager import S3_URL, DataPath, _validate_attributes
label_desc: Use image node_id 11 for calling a global function with example usage: test_download_dataset_full_or_partial(download_full, download_partial, attributes, dest_exists, force, called_partial) without return types