예제 #1
0
def prueba_obtener_clientes_mas_gastadores(resultados_pruebas):
    archivo_1 = consultas.cargar_archivo(NOMBRE_ARCHIVO_VALIDO_1)

    descripcion = "2 clientes mas gastadores con archivo 1"
    res_esperado = [("C1", "3.0"), ("C5", "1.0")]
    res_real = consultas.obtener_clientes_mas_gastadores(archivo_1, 2)
    correr_prueba(set(res_esperado) == set(res_real), descripcion, resultados_pruebas)

    archivo_2 = consultas.cargar_archivo(NOMBRE_ARCHIVO_VALIDO_2)

    descripcion = "1 cliente mas gastador con archivo 2"
    res_esperado = [("C1", "3.0")]
    res_real = consultas.obtener_clientes_mas_gastadores(archivo_2, 1)
    correr_prueba(set(res_esperado) == set(res_real), descripcion, resultados_pruebas)

    archivo_3 = consultas.cargar_archivo(NOMBRE_ARCHIVO_VALIDO_3)

    descripcion = "3 clientes mas gastadores con archivo 3"
    res_esperado = [("C1", "2.0"), ("P1", "1.0"), ("DC3", "1.0")]
    res_real = consultas.obtener_clientes_mas_gastadores(archivo_3, 3)
    correr_prueba(set(res_esperado) == set(res_real), descripcion, resultados_pruebas)

    archivo_4 = consultas.cargar_archivo(NOMBRE_ARCHIVO_VALIDO_4)

    descripcion = "2 clientes mas gastadores con archivo 4"
    res_esperado = [("C1", "8.0"), ("C2", "2.0")]
    res_real = consultas.obtener_clientes_mas_gastadores(archivo_4, 2)
    correr_prueba(set(res_esperado) == set(res_real), descripcion, resultados_pruebas)
예제 #2
0
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)
예제 #3
0
def prueba_obtener_productos_mas_vendidos(resultados_pruebas):
    archivo_1 = consultas.cargar_archivo(NOMBRE_ARCHIVO_VALIDO_1)

    descripcion = "2 productos mas vendidos con archivo 1"
    res_esperado = [("P01", "4.0"), ("P02", "2.0")]
    res_real = consultas.obtener_productos_mas_vendidos(archivo_1, 2)
    correr_prueba(set(res_esperado) == set(res_real), descripcion, resultados_pruebas)

    archivo_2 = consultas.cargar_archivo(NOMBRE_ARCHIVO_VALIDO_2)

    descripcion = "1 producto mas vendido con archivo 2"
    res_esperado = [("P01", "4.0")]
    res_real = consultas.obtener_productos_mas_vendidos(archivo_2, 1)
    correr_prueba(set(res_esperado) == set(res_real), descripcion, resultados_pruebas)

    archivo_3 = consultas.cargar_archivo(NOMBRE_ARCHIVO_VALIDO_3)

    descripcion = "3 productos mas vendidos con archivo 3"
    res_esperado = [("P1", "8.0"), ("P2", "2.0"), ("C1", "1.0")]
    res_real = consultas.obtener_productos_mas_vendidos(archivo_3, 3)
    correr_prueba(set(res_esperado) == set(res_real), descripcion, resultados_pruebas)

    archivo_4 = consultas.cargar_archivo(NOMBRE_ARCHIVO_VALIDO_4)

    descripcion = "2 productos mas vendidos con archivo 4"
    res_esperado = [("P1", "2.0"), ("QP3", "1.0")]
    res_real = consultas.obtener_productos_mas_vendidos(archivo_4, 2)
    correr_prueba(set(res_esperado) == set(res_real), descripcion, resultados_pruebas)
예제 #4
0
def prueba_obtener_productos_comprados_por_cliente(resultados_pruebas):
    archivo_1 = consultas.cargar_archivo(NOMBRE_ARCHIVO_VALIDO_1)

    descripcion = "compras de cliente válido C1 con configuración 1"
    res_esperado = ["P01", "P02", "P03"]
    res_real = consultas.obtener_productos_comprados_por_cliente(archivo_1, "C1")
    correr_prueba(set(res_esperado) == set(res_real), descripcion, resultados_pruebas)
    
    descripcion = "compras de cliente válido C2 con configuración 1"
    res_esperado = ["P01"]
    res_real = consultas.obtener_productos_comprados_por_cliente(archivo_1, "C2")
    correr_prueba(res_esperado == res_real, descripcion, resultados_pruebas)
    
    descripcion = "compras de cliente inexistente C6 con configuración 1"
    res_esperado = []
    res_real = consultas.obtener_productos_comprados_por_cliente(archivo_1, "C6")
    correr_prueba(res_esperado == res_real, descripcion, resultados_pruebas)
    
    archivo_2 = consultas.cargar_archivo(NOMBRE_ARCHIVO_VALIDO_2)
    
    descripcion = "compras de cliente válido C1 con configuración 2"
    res_esperado = ["P01", "P02", "P03"]
    res_real = consultas.obtener_productos_comprados_por_cliente(archivo_2, "C1")
    correr_prueba(set(res_esperado) == set(res_real), descripcion, resultados_pruebas)
              
    descripcion = "compras de cliente válido C2 con configuración 2"
    res_esperado = ["P01"]
    res_real = consultas.obtener_productos_comprados_por_cliente(archivo_2, "C2")
    correr_prueba(res_esperado == res_real, descripcion, resultados_pruebas)
예제 #5
0
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)
예제 #6
0
def prueba_obtener_productos_mas_vendidos(resultados_pruebas):
    archivo_1 = consultas.cargar_archivo(NOMBRE_ARCHIVO_VALIDO_1)

    descripcion = "productos mas vendidos  archivo 1  con 2 resultados"
    res_esperado = [("P01", 4), ("P02", 2)]
    res_real = consultas.obtener_productos_mas_vendidos(archivo_1, 2)
    correr_prueba(
        set(res_esperado) == set(res_real), descripcion, resultados_pruebas)

    descripcion = "productos mas vendidos archivo 1 con 3 resultados"
    res_esperado = [("P01", 4), ("P02", 2), ("P03", 1)]
    res_real = consultas.obtener_productos_mas_vendidos(archivo_1, 3)
    correr_prueba(res_esperado == res_real, descripcion, resultados_pruebas)

    archivo_2 = consultas.cargar_archivo(NOMBRE_ARCHIVO_VALIDO_2)

    descripcion = "productos mas vendidos  archivo 2  con 2 resultados"
    res_esperado = [("P01", 4), ("P02", 2)]
    res_real = consultas.obtener_productos_mas_vendidos(archivo_1, 2)
    correr_prueba(
        set(res_esperado) == set(res_real), descripcion, resultados_pruebas)

    descripcion = "productos mas vendidos  archivo 2  con 3 resultados"
    res_esperado = [("P01", 4), ("P02", 2), ("P03", 1)]
    res_real = consultas.obtener_productos_mas_vendidos(archivo_1, 3)
    correr_prueba(res_esperado == res_real, descripcion, resultados_pruebas)
예제 #7
0
def prueba_obtener_nombres_posibles_de_productos(resultados_pruebas):
    archivo_4 = consultas.cargar_archivo(NOMBRE_ARCHIVO_VALIDO_4)

    descripcion = "obtiene productos cuando se especifica el nombre completo"
    res_esperado = ["P0"]
    res_real = consultas.obtener_productos_con_nombre_incompleto(
        archivo_4, "P0")
    correr_prueba(res_esperado == res_real, descripcion, resultados_pruebas)

    descripcion = "obtiene productos sin repetir si se compraron varios"
    res_esperado = ["P1"]
    res_real = consultas.obtener_productos_con_nombre_incompleto(
        archivo_4, "P1")
    correr_prueba(res_esperado == res_real, descripcion, resultados_pruebas)

    descripcion = "obtener productos diferencia espacios"
    res_esperado = ["P2"]
    res_real = consultas.obtener_productos_con_nombre_incompleto(
        archivo_4, "P2")
    correr_prueba(res_esperado == res_real, descripcion, resultados_pruebas)

    descripcion = "obtiene productos cuando se especifica el nombre incompleto"
    res_esperado = ["PP3", "P3P", "QP3", "P3"]
    res_real = consultas.obtener_productos_con_nombre_incompleto(
        archivo_4, "P3")
    correr_prueba(
        set(res_esperado) == set(res_real), descripcion, resultados_pruebas)

    descripcion = "obtiene productos cuando sus nombres tienen espacios"
    res_esperado = ["P P4 P P"]
    res_real = consultas.obtener_productos_con_nombre_incompleto(
        archivo_4, "P4")
    correr_prueba(res_esperado == res_real, descripcion, resultados_pruebas)
예제 #8
0
def prueba_obtener_nombres_posibles_de_clientes(resultados_pruebas):
    archivo_3 = consultas.cargar_archivo(NOMBRE_ARCHIVO_VALIDO_3)

    descripcion = "obtiene clientes cuando se especifica el nombre completo"
    res_esperado = ["C0"]
    res_real = consultas.obtener_clientes_con_nombre_incompleto(archivo_3, "C0")
    correr_prueba(res_esperado == res_real, descripcion, resultados_pruebas)
    
    descripcion = "obtiene clientes sin repetir si hicieron varias compras"
    res_esperado = ["C1"]
    res_real = consultas.obtener_clientes_con_nombre_incompleto(archivo_3, "C1")
    correr_prueba(res_esperado == res_real, descripcion, resultados_pruebas)
    
    descripcion = "obtener clientes diferencia espacios"
    res_esperado = ["C2"]
    res_real = consultas.obtener_clientes_con_nombre_incompleto(archivo_3, "C2")
    correr_prueba(res_esperado == res_real, descripcion, resultados_pruebas)
    
    descripcion = "obtiene clientes cuando se especifica el nombre incompleto"
    res_esperado = ["CC3", "C3C", "DC3", "C3"]
    res_real = consultas.obtener_clientes_con_nombre_incompleto(archivo_3, "C3")
    correr_prueba(set(res_esperado) == set(res_real), descripcion, resultados_pruebas)
    
    descripcion = "obtiene clientes cuando sus nombres tienen espacios"
    res_esperado = ["C C4 C C"]
    res_real = consultas.obtener_clientes_con_nombre_incompleto(archivo_3, "C4")
    correr_prueba(res_esperado == res_real, descripcion, resultados_pruebas)
예제 #9
0
def prueba_obtener_nombres_posibles_de_clientes(resultados_pruebas):
    archivo_3 = consultas.cargar_archivo(NOMBRE_ARCHIVO_VALIDO_3)

    descripcion = "obtiene clientes cuando se especifica el nombre completo"
    res_esperado = ["C0"]
    res_real = consultas.obtener_clientes_con_nombre_incompleto(
        archivo_3, "C0")
    correr_prueba(res_esperado == res_real, descripcion, resultados_pruebas)

    descripcion = "obtiene clientes sin repetir si hicieron varias compras"
    res_esperado = ["C1"]
    res_real = consultas.obtener_clientes_con_nombre_incompleto(
        archivo_3, "C1")
    correr_prueba(res_esperado == res_real, descripcion, resultados_pruebas)

    descripcion = "obtener clientes diferencia espacios"
    res_esperado = ["C2"]
    res_real = consultas.obtener_clientes_con_nombre_incompleto(
        archivo_3, "C2")
    correr_prueba(res_esperado == res_real, descripcion, resultados_pruebas)

    descripcion = "obtiene clientes cuando se especifica el nombre incompleto"
    res_esperado = ["CC3", "C3C", "DC3", "C3"]
    res_real = consultas.obtener_clientes_con_nombre_incompleto(
        archivo_3, "C3")
    correr_prueba(
        set(res_esperado) == set(res_real), descripcion, resultados_pruebas)

    descripcion = "obtiene clientes cuando sus nombres tienen espacios"
    res_esperado = ["C C4 C C"]
    res_real = consultas.obtener_clientes_con_nombre_incompleto(
        archivo_3, "C4")
    correr_prueba(res_esperado == res_real, descripcion, resultados_pruebas)
예제 #10
0
def prueba_obtener_nombres_posibles_de_productos(resultados_pruebas):
    archivo_4 = consultas.cargar_archivo(NOMBRE_ARCHIVO_VALIDO_4)
    
    descripcion = "obtiene productos cuando se especifica el nombre completo"
    res_esperado = ["P0"]
    res_real = consultas.obtener_productos_con_nombre_incompleto(archivo_4, "P0")
    correr_prueba(res_esperado == res_real, descripcion, resultados_pruebas)
              
    descripcion = "obtiene productos sin repetir si se compraron varios"
    res_esperado = ["P1"]
    res_real = consultas.obtener_productos_con_nombre_incompleto(archivo_4, "P1")
    correr_prueba(res_esperado == res_real, descripcion, resultados_pruebas)
              
    descripcion = "obtener productos diferencia espacios"
    res_esperado = ["P2"]
    res_real = consultas.obtener_productos_con_nombre_incompleto(archivo_4, "P2")
    correr_prueba(res_esperado == res_real, descripcion, resultados_pruebas)
              
    descripcion = "obtiene productos cuando se especifica el nombre incompleto"
    res_esperado = ["PP3", "P3P", "QP3", "P3"]
    res_real = consultas.obtener_productos_con_nombre_incompleto(archivo_4, "P3")
    correr_prueba(set(res_esperado) == set(res_real), descripcion, resultados_pruebas)
              
    descripcion = "obtiene productos cuando sus nombres tienen espacios"
    res_esperado = ["P P4 P P"]
    res_real = consultas.obtener_productos_con_nombre_incompleto(archivo_4, "P4")
    correr_prueba(res_esperado == res_real, descripcion, resultados_pruebas)
예제 #11
0
def consulta_ventas():
    ''' Inicia la interfaz con el usuario. Resuelve las consultas usando los
    métodos definidos en el módulo de consultas.
    '''
    print ("Bienvenido a FarmaSoft, el programa líder de consulta de ventas.")
    
    try:
        archivo = consultas.cargar_archivo(NOMBRE_ARCHIVO_REGISTROS)
    except RuntimeError as e:
        print (e)
        return
    
    seguir_consultando = True
    
    while seguir_consultando:
        print
        seleccion = interaccion_usuario.mostrar_menu_generico(
                obtener_opciones_menu_principal(), "Salir")
        
        if seleccion == 0:
            consultar_productos_mas_vendidos(archivo)
        elif seleccion == 1:
            consultar_clientes_mas_gastadores(archivo)
        elif seleccion == 2:
            consultar_productos_comprados_por_cliente(archivo)
        elif seleccion == 3: 
            consultar_clientes_de_producto(archivo)
        elif seleccion == -1:
            seguir_consultando = False
            
    print ("¡Gracias por usar FarmaSoft!")
예제 #12
0
def consulta_ventas():
    ''' Inicia la interfaz con el usuario. Resuelve las consultas usando los
    métodos definidos en el módulo de consultas.
    '''
    print("Bienvenido a FarmaSoft, el programa líder de consulta de ventas.")

    try:
        archivo = consultas.cargar_archivo(NOMBRE_ARCHIVO_REGISTROS)
    except RuntimeError as e:
        print(e)
        return

    seguir_consultando = True

    while seguir_consultando:
        print()
        seleccion = interaccion_usuario.mostrar_menu_generico(
            obtener_opciones_menu_principal(), "Salir")

        if seleccion == 0:
            consultar_productos_mas_vendidos(archivo)
        elif seleccion == 1:
            consultar_clientes_mas_gastadores(archivo)
        elif seleccion == 2:
            consultar_productos_comprados_por_cliente(archivo)
        elif seleccion == 3:
            consultar_clientes_de_producto(archivo)
        elif seleccion == -1:
            seguir_consultando = False

    print("¡Gracias por usar FarmaSoft!")
예제 #13
0
def consulta_ventas():
    ''' Inicia la interfaz con el usuario. Resuelve las consultas usando los
    métodos definidos en el módulo de consultas.
    '''
    print ("Bienvenido a FarmaSoft, el programa líder de consulta de ventas.")
    
    try:
        archivo = consultas.cargar_archivo(NOMBRE_ARCHIVO_REGISTROS)
    except RuntimeError, e:
        print e
        return
예제 #14
0
def prueba_obtener_clientes_mas_gastadores(resultados_pruebas):
    archivo_1 = consultas.cargar_archivo(NOMBRE_ARCHIVO_VALIDO_1)

    descripcion = "Clientes mas gastadores con 2 resultados"
    res_esperado = [("C1", 3.0), ("C2", 1.0)]
    res_real = consultas.obtener_clientes_mas_gastadores(archivo_1, 2)
    correr_prueba(set(res_esperado) == set(res_real), descripcion, resultados_pruebas)
    
    descripcion = "Clientes mas gastadores con 3 resultados"
    res_esperado = [("C1", 3.0), ("C2", 1.0), ("C3", 1.0)]
    res_real = consultas.obtener_clientes_mas_gastadores(archivo_1, 3)
    correr_prueba(res_esperado == res_real, descripcion, resultados_pruebas)
예제 #15
0
def prueba_obtener_clientes_mas_gastadores(resultados_pruebas):
    archivo_1 = consultas.cargar_archivo(NOMBRE_ARCHIVO_VALIDO_1)

    descripcion = "Clientes mas gastadores con 2 resultados"
    res_esperado = [("C1", 3.0), ("C2", 1.0)]
    res_real = consultas.obtener_clientes_mas_gastadores(archivo_1, 2)
    correr_prueba(
        set(res_esperado) == set(res_real), descripcion, resultados_pruebas)

    descripcion = "Clientes mas gastadores con 3 resultados"
    res_esperado = [("C1", 3.0), ("C2", 1.0), ("C3", 1.0)]
    res_real = consultas.obtener_clientes_mas_gastadores(archivo_1, 3)
    correr_prueba(res_esperado == res_real, descripcion, resultados_pruebas)
예제 #16
0
def prueba_obtener_productos_mas_vendidos(resultados_pruebas):
    archivo_1 = consultas.cargar_archivo(NOMBRE_ARCHIVO_VALIDO_1)

    descripcion = "productos mas vendidos  archivo 1  con 2 resultados"
    res_esperado = [("P01", 4), ("P02", 2)]
    res_real = consultas.obtener_productos_mas_vendidos(archivo_1, 2)
    correr_prueba(set(res_esperado) == set(res_real), descripcion, resultados_pruebas)
    
    descripcion = "productos mas vendidos archivo 1 con 3 resultados"
    res_esperado = [("P01", 4), ("P02", 2), ("P03", 1)]
    res_real = consultas.obtener_productos_mas_vendidos(archivo_1, 3)
    correr_prueba(res_esperado == res_real, descripcion, resultados_pruebas)

    archivo_2 = consultas.cargar_archivo(NOMBRE_ARCHIVO_VALIDO_2)
    
    descripcion = "productos mas vendidos  archivo 2  con 2 resultados"
    res_esperado = [("P01", 4), ("P02", 2)]
    res_real = consultas.obtener_productos_mas_vendidos(archivo_1, 2)
    correr_prueba(set(res_esperado) == set(res_real), descripcion, resultados_pruebas)
              
    descripcion = "productos mas vendidos  archivo 2  con 3 resultados"
    res_esperado = [("P01", 4), ("P02", 2), ("P03", 1)]
    res_real = consultas.obtener_productos_mas_vendidos(archivo_1, 3)
    correr_prueba(res_esperado == res_real, descripcion, resultados_pruebas)
예제 #17
0
def prueba_obtener_productos_comprados_por_cliente(resultados_pruebas):
    archivo_1 = consultas.cargar_archivo(NOMBRE_ARCHIVO_VALIDO_1)

    descripcion = "compras de cliente válido C1 con configuración 1"
    res_esperado = ["P01", "P02", "P03"]
    res_real = consultas.obtener_productos_comprados_por_cliente(
        archivo_1, "C1")
    correr_prueba(
        set(res_esperado) == set(res_real), descripcion, resultados_pruebas)

    descripcion = "compras de cliente válido C2 con configuración 1"
    res_esperado = ["P01"]
    res_real = consultas.obtener_productos_comprados_por_cliente(
        archivo_1, "C2")
    correr_prueba(res_esperado == res_real, descripcion, resultados_pruebas)

    descripcion = "compras de cliente inexistente C6 con configuración 1"
    res_esperado = []
    res_real = consultas.obtener_productos_comprados_por_cliente(
        archivo_1, "C6")
    correr_prueba(res_esperado == res_real, descripcion, resultados_pruebas)

    archivo_2 = consultas.cargar_archivo(NOMBRE_ARCHIVO_VALIDO_2)

    descripcion = "compras de cliente válido C1 con configuración 2"
    res_esperado = ["P01", "P02", "P03"]
    res_real = consultas.obtener_productos_comprados_por_cliente(
        archivo_2, "C1")
    correr_prueba(
        set(res_esperado) == set(res_real), descripcion, resultados_pruebas)

    descripcion = "compras de cliente válido C2 con configuración 2"
    res_esperado = ["P01"]
    res_real = consultas.obtener_productos_comprados_por_cliente(
        archivo_2, "C2")
    correr_prueba(res_esperado == res_real, descripcion, resultados_pruebas)