docstr: collection schema 1: [pk, int64, float64, string float_vector]
  data file: vectors.parquet and uid.parquet,
  Steps:
  1. create collection
  2. import data
  3. verify failure, because only one file is allowed
docstr_tok: ["collection","schema","1",":","[","pk",",","int64",",","float64",",","string","float_vector","]","data","file",":","vectors.parquet","and","uid.parquet",",","Steps",":","1.","create","collection","2.","import","data","3.","verify","failure",",","because","only","one","file","is","allowed"]
code: def test_with_wrong_parquet_file_num(
      self, auto_id, dim, entities, file_nums, array_len
  ):
      """
      collection schema 1: [pk, int64, float64, string float_vector]
      data file: vectors.parquet and uid.parquet,
      Steps:
      1. create collection
      2. import data
      3. verify failure, because only one file is allowed
      """
      fields = [
          cf.gen_int64_field(
              name=df.pk_field, is_primary=True, auto_id=auto_id
          ),
          cf.gen_int64_field(name=df.int_field),
          cf.gen_float_field(name=df.float_field),
          cf.gen_double_field(name=df.double_field),
          cf.gen_array_field(
              name=df.array_int_field, element_type=DataType.INT64
          ),
          cf.gen_array_field(
              name=df.array_float_field, element_type=DataType.FLOAT
          ),
          cf.gen_array_field(
              name=df.array_string_field,
              element_type=DataType.VARCHAR,
              max_length=100,
          ),
          cf.gen_array_field(
              name=df.array_bool_field, element_type=DataType.BOOL
          ),
          cf.gen_float_vec_field(name=df.vec_field, dim=dim),
      ]
      data_fields = [
          f.name
          for f in fields
          if not f.to_dict().get("auto_id", False)
      ]
      files = prepare_bulk_insert_parquet_files(
          minio_endpoint=self.minio_endpoint,
          bucket_name=self.bucket_name,
          rows=entities,
          dim=dim,
          data_fields=data_fields,
          file_nums=file_nums,
          array_length=array_len,
          force=True,
      )
      self._connect()
      c_name = cf.gen_unique_str("bulk_insert")
      schema = cf.gen_collection_schema(fields=fields, auto_id=auto_id)
      self.collection_wrap.init_collection(c_name, schema=schema)
  
      # import data
      error = {}
      if file_nums == 0:
          error = {
              ct.err_code: 1100,
              ct.err_msg: "import request is empty: invalid parameter",
          }
      if file_nums > 1:
          error = {
              ct.err_code: 65535,
              ct.err_msg: "for JSON or parquet file, each task only accepts one file",
          }
      self.utility_wrap.do_bulk_insert(
          collection_name=c_name,
          files=files,
          check_task=CheckTasks.err_res,
          check_items=error,
      )
  
imports: import logging
  import time
  import pytest
  from pymilvus import DataType
  import numpy
  from pathlib import Path
  from base.client_base import TestcaseBase
  from common import common_func
  from common import common_type
  from common.milvus_sys import MilvusSys
  from common.common_type import CaseLabel, CheckTasks
  from utils.util_log import test_log
  from common.bulk_insert_data import prepare_bulk_insert_json_files, prepare_bulk_insert_new_json_files, prepare_bulk_insert_numpy_files, prepare_bulk_insert_parquet_files, prepare_bulk_insert_csv_files, DataField
label_desc: Use image node_id 11 for calling the TestBulkInsert obj's underlying member method code with example usage: obj.test_with_wrong_parquet_file_num(auto_id, dim, entities, file_nums, array_len) without return types