def prueba_obtener_clientes_de_producto(resultados_pruebas): archivo_1 = consultas.cargar_archivo(NOMBRE_ARCHIVO_VALIDO_1) descripcion = "clientes de producto válido P1 con configuración 1" res_esperado = ["C1", "C2", "C3", "C4"] res_real = consultas.obtener_clientes_de_producto(archivo_1, "P01") correr_prueba(set(res_esperado) == set(res_real), descripcion, resultados_pruebas) descripcion = "clientes de producto válido P2 con configuración 1" res_esperado = ["C1", "C5"] res_real = consultas.obtener_clientes_de_producto(archivo_1, "P02") correr_prueba(set(res_esperado) == set(res_real), descripcion, resultados_pruebas) archivo_2 = consultas.cargar_archivo(NOMBRE_ARCHIVO_VALIDO_2) descripcion = "clientes de producto válido P1 con configuración 2" res_esperado = ["C1", "C2", "C3", "C4"] res_real = consultas.obtener_clientes_de_producto(archivo_2, "P01") correr_prueba(set(res_esperado) == set(res_real), descripcion, resultados_pruebas) descripcion = "clientes de producto válido P2 con configuración 2" res_esperado = ["C1", "C5"] res_real = consultas.obtener_clientes_de_producto(archivo_2, "P02") correr_prueba(set(res_esperado) == set(res_real), descripcion, resultados_pruebas) descripcion = "clientes de producto inexistente P4 con configuración 2" res_esperado = [] res_real = consultas.obtener_clientes_de_producto(archivo_2, "P04") correr_prueba(res_esperado == res_real, descripcion, resultados_pruebas)
def prueba_obtener_clientes_de_producto(resultados_pruebas): archivo_1 = consultas.cargar_archivo(NOMBRE_ARCHIVO_VALIDO_1) descripcion = "clientes de producto válido P1 con configuración 1" res_esperado = ["C1", "C2", "C3", "C4"] res_real = consultas.obtener_clientes_de_producto(archivo_1, "P01") correr_prueba( set(res_esperado) == set(res_real), descripcion, resultados_pruebas) descripcion = "clientes de producto válido P2 con configuración 1" res_esperado = ["C1", "C5"] res_real = consultas.obtener_clientes_de_producto(archivo_1, "P02") correr_prueba( set(res_esperado) == set(res_real), descripcion, resultados_pruebas) archivo_2 = consultas.cargar_archivo(NOMBRE_ARCHIVO_VALIDO_2) descripcion = "clientes de producto válido P1 con configuración 2" res_esperado = ["C1", "C2", "C3", "C4"] res_real = consultas.obtener_clientes_de_producto(archivo_2, "P01") correr_prueba( set(res_esperado) == set(res_real), descripcion, resultados_pruebas) descripcion = "clientes de producto válido P2 con configuración 2" res_esperado = ["C1", "C5"] res_real = consultas.obtener_clientes_de_producto(archivo_2, "P02") correr_prueba( set(res_esperado) == set(res_real), descripcion, resultados_pruebas) descripcion = "clientes de producto inexistente P4 con configuración 2" res_esperado = [] res_real = consultas.obtener_clientes_de_producto(archivo_2, "P04") correr_prueba(res_esperado == res_real, descripcion, resultados_pruebas)
def consultar_clientes_de_producto(archivo): ''' Función que exporta a un archivo de salida un listado de los clientes que compraron un producto, dado un archivo de entrada. Se le solicita al usuario parte del nombre del producto para después seleccionar el nombre completo de una lista. ''' # Obtiene el nombre del producto. print ("Ingrese parte del nombre del producto a consultar.") nombre_parcial = interaccion_usuario.ingresar_cadena_no_vacia() nombres_posibles = \ consultas.obtener_productos_con_nombre_incompleto(archivo, nombre_parcial) if len(nombres_posibles) == 0: print ("No se encontraron productos con ese nombre.") return indice_nombre = interaccion_usuario.mostrar_menu_generico(nombres_posibles, "Cancelar") if indice_nombre == -1: return nombre_producto = nombres_posibles[indice_nombre] resultados = consultas.obtener_clientes_de_producto(archivo, nombre_producto) # Exporta los resultados - se preparan los datos de acuerdo a la # documentación de la función del módulo salida_resultados. titulo_consulta = "Clientes que compraron el producto %s" % nombre_producto cabecera = ("Cliente",) resultados = [ (resultado,) for resultado in resultados ] nombre_salida = \ salida_resultados.exportar_resultados(resultados, cabecera, titulo_consulta) print ("Resultados exportados al archivo " + nombre_salida)
def consultar_clientes_de_producto(archivo): ''' Función que exporta a un archivo de salida un listado de los clientes que compraron un producto, dado un archivo de entrada. Se le solicita al usuario parte del nombre del producto para después seleccionar el nombre completo de una lista. ''' # Obtiene el nombre del producto. print("Ingrese parte del nombre del producto a consultar.") nombre_parcial = interaccion_usuario.ingresar_cadena_no_vacia() nombres_posibles = \ consultas.obtener_productos_con_nombre_incompleto(archivo, nombre_parcial) if len(nombres_posibles) == 0: print("No se encontraron productos con ese nombre.") return indice_nombre = interaccion_usuario.mostrar_menu_generico( nombres_posibles, "Cancelar") if indice_nombre == -1: return nombre_producto = nombres_posibles[indice_nombre] resultados = consultas.obtener_clientes_de_producto( archivo, nombre_producto) # Exporta los resultados - se preparan los datos de acuerdo a la # documentación de la función del módulo salida_resultados. titulo_consulta = "Clientes que compraron el producto %s" % nombre_producto cabecera = ("Cliente", ) resultados = [(resultado, ) for resultado in resultados] nombre_salida = \ salida_resultados.exportar_resultados(resultados, cabecera, titulo_consulta) print("Resultados exportados al archivo " + nombre_salida)