Se moquant open(nom_fichier) dans les tests unitaires

J'ai un code source qui ouvre un fichier csv et met en place un en-tête de
la valeur de l'association. Le code source est donné ci-dessous:

def ParseCsvFile(source): 
  """Parse the csv file. 
  Args: 
    source: file to be parsed

  Returns: the list of dictionary entities; each dictionary contains
             attribute to value mapping or its equivalent. 
  """ 
  global rack_file 
  rack_type_file = None 
  try: 
    rack_file = source 
    rack_type_file = open(rack_file)  # Need to mock this line.
    headers = rack_type_file.readline().split(',') 
    length = len(headers) 
    reader = csv.reader(rack_type_file, delimiter=',') 
    attributes_list=[] # list of dictionaries. 
    for line in reader: 
      # More process to happeng. Converting the rack name to sequence. 
      attributes_list.append(dict((headers[i],
                                   line[i]) for i in range(length))) 
    return attributes_list 
  except IOError, (errno, strerror): 
    logging.error("I/O error(%s): %s" % (errno, strerror)) 
  except IndexError, (errno, strerror): 
    logging.error('Index Error(%s), %s' %(errno, strerror)) 
  finally: 
    rack_type_file.close() 

Je suis en train d'essayer de se moquer de l'instruction suivante

rack_type_file = open(rack_file) 

Comment se moquer ouvert(...) la fonction?

  • J'ai peur à l'aide de Maquette de la bibliothèque est un non commencé. Nous sommes seulement autorisés à utiliser le mox.
  • J'ai écrit un exemple qui utilise mox pour vous.
InformationsquelleAutor Kartik | 2011-03-08