code: def test_download_and_extract_movielens(size, tmp):
      """Test movielens data download and extract"""
      zip_path = os.path.join(tmp, "ml.zip")
      download_movielens(size, dest_path=zip_path)
      assert len(os.listdir(tmp)) == 1
      assert os.path.exists(zip_path)
  
      rating_path = os.path.join(tmp, "rating.dat")
      item_path = os.path.join(tmp, "item.dat")
      extract_movielens(
          size,
          rating_path=rating_path,
          item_path=item_path,
          zip_path=zip_path,
      )
      # Test if raw-zip file, rating file, and item file are cached
      assert len(os.listdir(tmp)) == 3
      assert os.path.exists(rating_path)
      assert os.path.exists(item_path)
  
imports: import os
  import gc
  import pandas
  from pandas.core.series import Series
  import pytest
  from pytest_mock import MockerFixture
  from recommenders.utils.constants import DEFAULT_GENRE_COL, DEFAULT_TITLE_COL
  from recommenders.datasets.movielens import MockMovielensSchema
  from recommenders.datasets.movielens import load_pandas_df, load_spark_df, load_item_df, download_movielens, extract_movielens
  from recommenders.datasets.movielens import DATA_FORMAT, MOCK_DATA_FORMAT, DEFAULT_HEADER, DEFAULT_ITEM_COL, DEFAULT_USER_COL
label_desc: Use image node_id 8 for calling a global function with example usage: test_download_and_extract_movielens(size, tmp) without return types