예제 #1
0
def test_configuracion_categoria(db):
    categoria = CategoriaFactory(prioridad=15)
    prioridades = PrioridadScheduling.objects.filter(categoria=categoria)
    assert prioridades.count() == 1
    assert prioridades.first().prioridad == 15
    categoria.prioridad = 21
    categoria.save(update_fields=['prioridad'])
    prioridades = PrioridadScheduling.objects.filter(categoria=categoria)
    assert prioridades.count() == 1
    assert prioridades.first().prioridad == 21
    categoria.prioridad = None
    categoria.save(update_fields=['prioridad'])
    prioridades = PrioridadScheduling.objects.filter(categoria=categoria)
    assert prioridades.count() == 0

    categoria_2 = CategoriaFactory()
    prioridades = PrioridadScheduling.objects.filter(categoria=categoria)
    assert prioridades.count() == 0
예제 #2
0
def test_cambio_prioridades_general(db, settings):
    """
    Se verifica el efecto de cambiar prioridades de una categoría o sección, en los coeficiente_para_orden_de_carga de las MesaCategoria.
    Se desarrolla una "historia" que combina identificaciones, cargas y cambios de prioridad.
    Se verifica que cada cambio de prioridades afecta exactamente a las MesaCategoria que corresponde.
    El autor pide disculpas por anticipado por la longitud de este test.
    """
    asignar_prioridades_standard(settings)
    settings.MIN_COINCIDENCIAS_IDENTIFICACION = 1
    fiscal = nuevo_fiscal()

    seccion_1, circuito_1, lugar_votacion_1 = crear_seccion("Barrio maritimo")
    seccion_2, circuito_2, lugar_votacion_2 = crear_seccion("Bera centro")
    pv = CategoriaFactory(nombre="PV")
    gv = CategoriaFactory(nombre="GV")
    categorias = [pv, gv]

    mesas_seccion_1, mesas_seccion_2 = \
        crear_mesas([lugar_votacion_1, lugar_votacion_2], categorias, 20)

    # identifico las 10 primeras mesas de la sección 1
    for nro in range(10):
        identificar_mesa(mesas_seccion_1[nro], fiscal)

    # simulo carga total para las primeras 5 mesacat en orden de carga,
    # van a ser, para la sección 1: mesa 0 - pv , mesa 0 - gv , mesa 1 - pv ,mesa 1 - gv , mesa 2 - pv
    verificar_siguiente_mesacat(mesas_seccion_1[0], pv)
    verificar_siguiente_mesacat(mesas_seccion_1[0], gv)
    verificar_siguiente_mesacat(mesas_seccion_1[1], pv)
    verificar_siguiente_mesacat(mesas_seccion_1[1], gv)
    verificar_siguiente_mesacat(mesas_seccion_1[2], pv)

    # ahora, identifico las 10 primeras mesas de la sección 2
    for nro in range(10):
        identificar_mesa(mesas_seccion_2[nro], fiscal)

    # verifico prioridades seteadas y no seteadas, hasta acá tienen el mismo orden de carga en ambas secciones
    # y en ambas categorías
    for mesas in [mesas_seccion_1, mesas_seccion_2]:
        verificar_valores_scheduling_mesacat(mesas[0], pv, 1, 1, 200)
        verificar_valores_scheduling_mesacat(mesas[0], gv, 1, 1, 200)
        verificar_valores_scheduling_mesacat(mesas[1], pv, 6, 2, 12000)
        verificar_valores_scheduling_mesacat(mesas[1], gv, 6, 2, 12000)
        verificar_valores_scheduling_mesacat(mesas[2], pv, 11, 3, 110000)
        verificar_valores_scheduling_mesacat(mesas[2], gv, 11, 3, 110000)
        verificar_valores_scheduling_mesacat(mesas[3], pv, 16, 4, 160000)
        verificar_valores_scheduling_mesacat(mesas[3], gv, 16, 4, 160000)
        verificar_valores_scheduling_mesacat(mesas[9], pv, 46, 10, 460000)
        verificar_valores_scheduling_mesacat(mesas[9], gv, 46, 10, 460000)
        verificar_valores_scheduling_mesacat(mesas[10], pv, None, None, None)
        verificar_valores_scheduling_mesacat(mesas[10], gv, None, None, None)

    # le cambio la prioridad a la categoría PV
    pv.prioridad = 15
    pv.save(update_fields=['prioridad'])

    # debería cambiar la prioridad para las mesacat que estén identificadas pero no tengan carga total
    verificar_valores_scheduling_mesacat(mesas_seccion_1[0], pv, 1, 1,
                                         200)  # ya está cargada
    verificar_valores_scheduling_mesacat(mesas_seccion_2[0], pv, 1, 1,
                                         30)  # no se cargó y está identificada
    verificar_valores_scheduling_mesacat(mesas_seccion_1[0], gv, 1, 1,
                                         200)  # ya está cargada
    verificar_valores_scheduling_mesacat(
        mesas_seccion_2[0], gv, 1, 1,
        200)  # no cambia la prioridad de esta categoría
    verificar_valores_scheduling_mesacat(mesas_seccion_1[1], pv, 6, 2,
                                         12000)  # ya está cargada
    verificar_valores_scheduling_mesacat(
        mesas_seccion_2[1], pv, 6, 2, 1800)  # no se cargó y está identificada
    verificar_valores_scheduling_mesacat(mesas_seccion_1[1], gv, 6, 2,
                                         12000)  # ya está cargada
    verificar_valores_scheduling_mesacat(
        mesas_seccion_2[1], gv, 6, 2,
        12000)  # no cambia la prioridad de esta categoría
    verificar_valores_scheduling_mesacat(mesas_seccion_1[2], pv, 11, 3,
                                         110000)  # ya está cargada
    verificar_valores_scheduling_mesacat(
        mesas_seccion_2[2], pv, 11, 3,
        16500)  # no se cargó y está identificada
    verificar_valores_scheduling_mesacat(
        mesas_seccion_1[2], gv, 11, 3,
        110000)  # no cambia la prioridad de esta categoría
    verificar_valores_scheduling_mesacat(
        mesas_seccion_2[2], gv, 11, 3,
        110000)  # no cambia la prioridad de esta categoría
    verificar_valores_scheduling_mesacat(
        mesas_seccion_1[3], pv, 16, 4,
        24000)  # no se cargó y está identificada
    verificar_valores_scheduling_mesacat(
        mesas_seccion_2[3], pv, 16, 4,
        24000)  # no se cargó y está identificada
    verificar_valores_scheduling_mesacat(
        mesas_seccion_1[3], gv, 16, 4,
        160000)  # no cambia la prioridad de esta categoría
    verificar_valores_scheduling_mesacat(
        mesas_seccion_2[3], gv, 16, 4,
        160000)  # no cambia la prioridad de esta categoría
    verificar_valores_scheduling_mesacat(
        mesas_seccion_1[9], pv, 46, 10,
        69000)  # no se cargó y está identificada
    verificar_valores_scheduling_mesacat(
        mesas_seccion_2[9], pv, 46, 10,
        69000)  # no se cargó y está identificada
    verificar_valores_scheduling_mesacat(
        mesas_seccion_1[9], gv, 46, 10,
        460000)  # no cambia la prioridad de esta categoría
    verificar_valores_scheduling_mesacat(
        mesas_seccion_2[9], gv, 46, 10,
        460000)  # no cambia la prioridad de esta categoría
    verificar_valores_scheduling_mesacat(mesas_seccion_1[10], pv, None, None,
                                         None)  # no está identificada
    verificar_valores_scheduling_mesacat(mesas_seccion_2[10], pv, None, None,
                                         None)  # no está identificada
    verificar_valores_scheduling_mesacat(mesas_seccion_1[10], gv, None, None,
                                         None)  # no está identificada
    verificar_valores_scheduling_mesacat(mesas_seccion_2[10], gv, None, None,
                                         None)  # no está identificada
    verificar_valores_scheduling_mesacat(mesas_seccion_1[11], pv, None, None,
                                         None)  # no está identificada
    verificar_valores_scheduling_mesacat(mesas_seccion_2[11], pv, None, None,
                                         None)  # no está identificada
    verificar_valores_scheduling_mesacat(mesas_seccion_1[11], gv, None, None,
                                         None)  # no está identificada
    verificar_valores_scheduling_mesacat(mesas_seccion_2[11], gv, None, None,
                                         None)  # no está identificada

    # identifico dos mesas más, una de cada sección. Me fijo que les asigne las prioridades adecuadas
    identificar_mesa(mesas_seccion_1[10], fiscal)
    identificar_mesa(mesas_seccion_2[10], fiscal)
    verificar_valores_scheduling_mesacat(mesas_seccion_1[10], pv, 51, 11,
                                         76500)
    verificar_valores_scheduling_mesacat(mesas_seccion_2[10], pv, 51, 11,
                                         76500)
    verificar_valores_scheduling_mesacat(mesas_seccion_1[10], gv, 51, 11,
                                         510000)
    verificar_valores_scheduling_mesacat(mesas_seccion_2[10], gv, 51, 11,
                                         510000)

    # cambio las prioridades de la sección 1
    seccion_1.prioridad_hasta_2 = 1
    seccion_1.prioridad_2_a_10 = 12
    seccion_1.prioridad_10_a_100 = 30
    seccion_1.save(update_fields=[
        'prioridad_hasta_2', 'prioridad_2_a_10', 'prioridad_10_a_100'
    ])

    # a ver ahora
    verificar_valores_scheduling_mesacat(mesas_seccion_1[0], pv, 1, 1,
                                         200)  # ya está cargada
    verificar_valores_scheduling_mesacat(
        mesas_seccion_2[0], pv, 1, 1,
        30)  # no cambia la prioridad de esta sección
    verificar_valores_scheduling_mesacat(mesas_seccion_1[0], gv, 1, 1,
                                         200)  # ya está cargada
    verificar_valores_scheduling_mesacat(
        mesas_seccion_2[0], gv, 1, 1,
        200)  # no cambia la prioridad de esta sección
    verificar_valores_scheduling_mesacat(mesas_seccion_1[1], pv, 6, 2,
                                         12000)  # ya está cargada
    verificar_valores_scheduling_mesacat(
        mesas_seccion_2[1], pv, 6, 2,
        1800)  # no cambia la prioridad de esta sección
    verificar_valores_scheduling_mesacat(mesas_seccion_1[1], gv, 6, 2,
                                         12000)  # ya está cargada
    verificar_valores_scheduling_mesacat(
        mesas_seccion_2[1], gv, 6, 2,
        12000)  # no cambia la prioridad de esta sección
    verificar_valores_scheduling_mesacat(mesas_seccion_1[2], pv, 11, 3,
                                         110000)  # ya está cargada
    verificar_valores_scheduling_mesacat(
        mesas_seccion_2[2], pv, 11, 3,
        16500)  # no cambia la prioridad de esta sección
    verificar_valores_scheduling_mesacat(
        mesas_seccion_1[2], gv, 11, 3,
        33000)  # no se cargó y está identificada
    verificar_valores_scheduling_mesacat(
        mesas_seccion_2[2], gv, 11, 3,
        110000)  # no cambia la prioridad de esta sección
    verificar_valores_scheduling_mesacat(
        mesas_seccion_1[3], pv, 16, 4, 7200)  # no se cargó y está identificada
    verificar_valores_scheduling_mesacat(
        mesas_seccion_2[3], pv, 16, 4,
        24000)  # no cambia la prioridad de esta sección
    verificar_valores_scheduling_mesacat(
        mesas_seccion_1[3], gv, 16, 4,
        48000)  # no se cargó y está identificada
    verificar_valores_scheduling_mesacat(
        mesas_seccion_2[3], gv, 16, 4,
        160000)  # no cambia la prioridad de esta sección
    verificar_valores_scheduling_mesacat(
        mesas_seccion_1[9], pv, 46, 10,
        20700)  # no se cargó y está identificada
    verificar_valores_scheduling_mesacat(
        mesas_seccion_2[9], pv, 46, 10,
        69000)  # no cambia la prioridad de esta sección
    verificar_valores_scheduling_mesacat(
        mesas_seccion_1[9], gv, 46, 10,
        138000)  # no se cargó y está identificada
    verificar_valores_scheduling_mesacat(
        mesas_seccion_2[9], gv, 46, 10,
        460000)  # no cambia la prioridad de esta sección
    verificar_valores_scheduling_mesacat(
        mesas_seccion_1[10], pv, 51, 11,
        22950)  # no se cargó y está identificada
    verificar_valores_scheduling_mesacat(
        mesas_seccion_2[10], pv, 51, 11,
        76500)  # no cambia la prioridad de esta sección
    verificar_valores_scheduling_mesacat(
        mesas_seccion_1[10], gv, 51, 11,
        153000)  # no se cargó y está identificada
    verificar_valores_scheduling_mesacat(
        mesas_seccion_2[10], gv, 51, 11,
        510000)  # no cambia la prioridad de esta sección
    verificar_valores_scheduling_mesacat(mesas_seccion_1[11], pv, None, None,
                                         None)  # no está identificada
    verificar_valores_scheduling_mesacat(mesas_seccion_2[11], pv, None, None,
                                         None)  # no está identificada
    verificar_valores_scheduling_mesacat(mesas_seccion_1[11], gv, None, None,
                                         None)  # no está identificada
    verificar_valores_scheduling_mesacat(mesas_seccion_2[11], gv, None, None,
                                         None)  # no está identificada

    # simulo carga total para las siguientes 2 mesacat en orden de carga,
    # van a ser, para la sección 2: mesa 0 - pv , mesa 0 - gv
    verificar_siguiente_mesacat(mesas_seccion_2[0], pv)
    verificar_siguiente_mesacat(mesas_seccion_2[0], gv)

    # vuelvo la categoría PV a valores default
    pv.prioridad = None
    pv.save(update_fields=['prioridad'])

    # a ver cómo terminamos
    verificar_valores_scheduling_mesacat(mesas_seccion_1[0], pv, 1, 1,
                                         200)  # ya está cargada
    verificar_valores_scheduling_mesacat(mesas_seccion_2[0], pv, 1, 1,
                                         30)  # ya está cargada
    verificar_valores_scheduling_mesacat(mesas_seccion_1[0], gv, 1, 1,
                                         200)  # ya está cargada
    verificar_valores_scheduling_mesacat(mesas_seccion_2[0], gv, 1, 1,
                                         200)  # ya está cargada
    verificar_valores_scheduling_mesacat(mesas_seccion_1[1], pv, 6, 2,
                                         12000)  # ya está cargada
    verificar_valores_scheduling_mesacat(
        mesas_seccion_2[1], pv, 6, 2, 12000)  # no se cargó y está identificada
    verificar_valores_scheduling_mesacat(mesas_seccion_1[1], gv, 6, 2,
                                         12000)  # ya está cargada
    verificar_valores_scheduling_mesacat(
        mesas_seccion_2[1], gv, 6, 2,
        12000)  # no cambia la prioridad de esta categoría
    verificar_valores_scheduling_mesacat(mesas_seccion_1[2], pv, 11, 3,
                                         110000)  # ya está cargada
    verificar_valores_scheduling_mesacat(
        mesas_seccion_2[2], pv, 11, 3,
        110000)  # no se cargó y está identificada
    verificar_valores_scheduling_mesacat(
        mesas_seccion_1[2], gv, 11, 3,
        33000)  # no cambia la prioridad de esta categoría
    verificar_valores_scheduling_mesacat(
        mesas_seccion_2[2], gv, 11, 3,
        110000)  # no cambia la prioridad de esta categoría
    verificar_valores_scheduling_mesacat(
        mesas_seccion_1[3], pv, 16, 4,
        48000)  # no se cargó y está identificada
    verificar_valores_scheduling_mesacat(
        mesas_seccion_2[3], pv, 16, 4,
        160000)  # no se cargó y está identificada
    verificar_valores_scheduling_mesacat(
        mesas_seccion_1[3], gv, 16, 4,
        48000)  # no cambia la prioridad de esta categoría
    verificar_valores_scheduling_mesacat(
        mesas_seccion_2[3], gv, 16, 4,
        160000)  # no cambia la prioridad de esta categoría
    verificar_valores_scheduling_mesacat(
        mesas_seccion_1[9], pv, 46, 10,
        138000)  # no se cargó y está identificada
    verificar_valores_scheduling_mesacat(
        mesas_seccion_2[9], pv, 46, 10,
        460000)  # no se cargó y está identificada
    verificar_valores_scheduling_mesacat(
        mesas_seccion_1[9], gv, 46, 10,
        138000)  # no cambia la prioridad de esta categoría
    verificar_valores_scheduling_mesacat(
        mesas_seccion_2[9], gv, 46, 10,
        460000)  # no cambia la prioridad de esta categoría
    verificar_valores_scheduling_mesacat(
        mesas_seccion_1[10], pv, 51, 11,
        153000)  # no se cargó y está identificada
    verificar_valores_scheduling_mesacat(
        mesas_seccion_2[10], pv, 51, 11,
        510000)  # no se cargó y está identificada
    verificar_valores_scheduling_mesacat(
        mesas_seccion_1[10], gv, 51, 11,
        153000)  # no cambia la prioridad de esta categoría
    verificar_valores_scheduling_mesacat(
        mesas_seccion_2[10], gv, 51, 11,
        510000)  # no cambia la prioridad de esta categoría
    verificar_valores_scheduling_mesacat(mesas_seccion_1[11], pv, None, None,
                                         None)  # no está identificada
    verificar_valores_scheduling_mesacat(mesas_seccion_2[11], pv, None, None,
                                         None)  # no está identificada
    verificar_valores_scheduling_mesacat(mesas_seccion_1[11], gv, None, None,
                                         None)  # no está identificada
    verificar_valores_scheduling_mesacat(mesas_seccion_2[11], gv, None, None,
                                         None)  # no está identificada
예제 #3
0
def test_cambio_prioridades_volver_parcialmente_a_default(db, settings):
    """
    Verifico que si para una sección, se vuelven algunos valores de prioridad al valor por defecto,
    entonces los coeficiente_para_orden_de_carga de las mesas se modifiquen de acuerdo a lo esperado.
    """
    asignar_prioridades_standard(settings)
    settings.MIN_COINCIDENCIAS_IDENTIFICACION = 1
    fiscal = nuevo_fiscal()

    seccion_1, circuito_1, lugar_votacion_1 = crear_seccion("Barrio maritimo")
    pv = CategoriaFactory(nombre="PV")
    gv = CategoriaFactory(nombre="GV")
    categorias = [pv, gv]

    seccion_1.prioridad_hasta_2 = 1
    seccion_1.prioridad_2_a_10 = 12
    seccion_1.prioridad_10_a_100 = 30
    seccion_1.save(update_fields=[
        'prioridad_hasta_2', 'prioridad_2_a_10', 'prioridad_10_a_100'
    ])
    pv.prioridad = 35
    pv.save(update_fields=['prioridad'])

    [mesas_seccion_1] = crear_mesas([lugar_votacion_1], categorias, 100)
    # identifico todas las mesas
    for nro in range(100):
        identificar_mesa(mesas_seccion_1[nro], fiscal)

    # estado antes del cambio en las prioridades de la sección
    verificar_valores_scheduling_mesacat(mesas_seccion_1[0], pv, 1, 1, 35)
    verificar_valores_scheduling_mesacat(mesas_seccion_1[0], gv, 1, 1, 100)
    verificar_valores_scheduling_mesacat(mesas_seccion_1[1], pv, 2, 2, 70)
    verificar_valores_scheduling_mesacat(mesas_seccion_1[1], gv, 2, 2, 200)
    verificar_valores_scheduling_mesacat(mesas_seccion_1[2], pv, 3, 3, 1260)
    verificar_valores_scheduling_mesacat(mesas_seccion_1[2], gv, 3, 3, 3600)
    verificar_valores_scheduling_mesacat(mesas_seccion_1[9], pv, 10, 10, 4200)
    verificar_valores_scheduling_mesacat(mesas_seccion_1[9], gv, 10, 10, 12000)
    verificar_valores_scheduling_mesacat(mesas_seccion_1[10], pv, 11, 11,
                                         11550)
    verificar_valores_scheduling_mesacat(mesas_seccion_1[10], gv, 11, 11,
                                         33000)
    verificar_valores_scheduling_mesacat(mesas_seccion_1[40], pv, 41, 41,
                                         43050)
    verificar_valores_scheduling_mesacat(mesas_seccion_1[40], gv, 41, 41,
                                         123000)

    # vuelvo al default el rango 2% - 10%
    seccion_1.prioridad_2_a_10 = None
    seccion_1.save(update_fields=['prioridad_2_a_10'])

    # a ver como quedaron
    verificar_valores_scheduling_mesacat(mesas_seccion_1[0], pv, 1, 1, 35)
    verificar_valores_scheduling_mesacat(mesas_seccion_1[0], gv, 1, 1, 100)
    verificar_valores_scheduling_mesacat(mesas_seccion_1[1], pv, 2, 2, 70)
    verificar_valores_scheduling_mesacat(mesas_seccion_1[1], gv, 2, 2, 200)
    verificar_valores_scheduling_mesacat(
        mesas_seccion_1[2], pv, 3, 3,
        2100)  # está en el rango afectado por el cambio
    verificar_valores_scheduling_mesacat(
        mesas_seccion_1[2], gv, 3, 3,
        6000)  # está en el rango afectado por el cambio
    verificar_valores_scheduling_mesacat(
        mesas_seccion_1[9], pv, 10, 10,
        7000)  # está en el rango afectado por el cambio
    verificar_valores_scheduling_mesacat(
        mesas_seccion_1[9], gv, 10, 10,
        20000)  # está en el rango afectado por el cambio
    verificar_valores_scheduling_mesacat(mesas_seccion_1[10], pv, 11, 11,
                                         11550)
    verificar_valores_scheduling_mesacat(mesas_seccion_1[10], gv, 11, 11,
                                         33000)
    verificar_valores_scheduling_mesacat(mesas_seccion_1[40], pv, 41, 41,
                                         43050)
    verificar_valores_scheduling_mesacat(mesas_seccion_1[40], gv, 41, 41,
                                         123000)