code: def test_fetch_surf_fsaverage(mesh, tmp_path, request_mocker):
      # Define attribute list that nilearn meshs should contain
      # (each attribute should eventually map to a _.gii.gz file
      # named after the attribute)
      mesh_attributes = {
          f"{part}_{side}"
          for part in [
              "area",
              "curv",
              "flat",
              "infl",
              "pial",
              "sphere",
              "sulc",
              "thick",
              "white",
          ]
          for side in ["left", "right"]
      }
  
      # Mock fsaverage3, 4, 6, 7 download (with actual url)
      fs_urls = [
          "https://osf.io/azhdf/download",
          "https://osf.io/28uma/download",
          "https://osf.io/jzxyr/download",
          "https://osf.io/svf8k/download",
      ]
      for fs_url in fs_urls:
          request_mocker.url_mapping[fs_url] = list_to_archive(
              [f"{name}.gii.gz" for name in mesh_attributes]
          )
  
      dataset = struct.fetch_surf_fsaverage(
          mesh, data_dir=str(tmp_path)
      )
  
      assert mesh_attributes.issubset(set(dataset.keys()))
      assert dataset.description != ""
  
file_path: nilearn/nilearn/datasets/tests/test_struct.py
imports: from pathlib import Path
  import numpy
  import pandas
  import pytest
  from nibabel import Nifti1Image
  from nilearn.datasets import struct
  from nilearn.datasets.tests._testing import dict_to_archive, list_to_archive
label_desc: Use image node_id 6 for calling a global function with example usage: test_fetch_surf_fsaverage(mesh, tmp_path, request_mocker) without return types