Best Python code snippet using SeleniumBase
test_integracion.py
Source:test_integracion.py
1from elecciones.models import (2 MesaCategoria, Carga3)4from elecciones.tests.factories import (CategoriaFactory, CargaFactory, MesaFactory)5from .factories import PrioridadSchedulingFactory6from .utils_para_test import (7 asignar_prioridades_standard, crear_mesas, crear_seccion, identificar_mesa, nuevo_fiscal,8 verificar_valores_scheduling_mesacat, verificar_siguiente_mesacat9)10def test_orden_de_carga_escenario_base(db, settings):11 """12 Se verifica la asignacion de ordenes de carga para una seccion standard, con dos categorias standard13 con una categoria prioritaria y una standard14 """15 asignar_prioridades_standard(settings)16 settings.MIN_COINCIDENCIAS_IDENTIFICACION = 117 fiscal = nuevo_fiscal()18 # una seccion standard, un circuito, 25 mesas en el mismo lugar de votacion, dos categorias standard19 la_seccion, circuito, lugar_votacion = crear_seccion("Bera centro")20 pv = CategoriaFactory(nombre="PV")21 gv = CategoriaFactory(nombre="GV")22 categorias = [pv, gv]23 [mesas] = crear_mesas([lugar_votacion], categorias, 25)24 # primera mesa25 identificar_mesa(mesas[0], fiscal)26 verificar_valores_scheduling_mesacat(mesas[0], pv, 1, 1, 200)27 verificar_valores_scheduling_mesacat(mesas[0], gv, 1, 1, 200)28 # segunda mesa29 identificar_mesa(mesas[1], fiscal)30 verificar_valores_scheduling_mesacat(mesas[1], pv, 5, 2, 10000)31 verificar_valores_scheduling_mesacat(mesas[1], gv, 5, 2, 10000)32 # quinta mesa33 for nro in range(2, 5):34 identificar_mesa(mesas[nro], fiscal)35 verificar_valores_scheduling_mesacat(mesas[4], pv, 17, 5, 170000)36 verificar_valores_scheduling_mesacat(mesas[4], gv, 17, 5, 170000)37 # mesa 2538 for nro in range(5, 25):39 identificar_mesa(mesas[nro], fiscal)40 verificar_valores_scheduling_mesacat(mesas[24], pv, 97, 25, 970000)41 verificar_valores_scheduling_mesacat(mesas[24], gv, 97, 25, 970000)42def test_orden_de_carga_seccion_categoria_prioritaria(db, settings):43 """44 Se verifica la asignacion de ordenes de carga para una seccion prioritaria,45 con una categoria prioritaria y una standard46 """47 asignar_prioridades_standard(settings)48 settings.MIN_COINCIDENCIAS_IDENTIFICACION = 149 fiscal = nuevo_fiscal()50 # una seccion prioritaria, un circuito, 200 mesas en el mismo lugar de votacion, una categoria prioritaria, una standard51 la_seccion, circuito, lugar_votacion = crear_seccion("Bera centro")52 pv = CategoriaFactory(nombre="PV")53 gv = CategoriaFactory(nombre="GV")54 categorias = [pv, gv]55 PrioridadSchedulingFactory(seccion=la_seccion, desde_proporcion=0, hasta_proporcion=2, prioridad=1)56 PrioridadSchedulingFactory(seccion=la_seccion, desde_proporcion=2, hasta_proporcion=10, prioridad=5)57 PrioridadSchedulingFactory(seccion=la_seccion, desde_proporcion=10, hasta_proporcion=100, prioridad=40)58 PrioridadSchedulingFactory(categoria=pv, desde_proporcion=0, hasta_proporcion=100, prioridad=20)59 [mesas] = crear_mesas([lugar_votacion], categorias, 200)60 # primera mesa61 identificar_mesa(mesas[0], fiscal)62 verificar_valores_scheduling_mesacat(mesas[0], pv, 1, 1, 20)63 verificar_valores_scheduling_mesacat(mesas[0], gv, 1, 1, 100)64 # segunda mesa65 identificar_mesa(mesas[1], fiscal)66 verificar_valores_scheduling_mesacat(mesas[1], pv, 1, 2, 20)67 verificar_valores_scheduling_mesacat(mesas[1], gv, 1, 2, 100)68 # tercera mesa69 identificar_mesa(mesas[2], fiscal)70 verificar_valores_scheduling_mesacat(mesas[2], pv, 2, 3, 40)71 verificar_valores_scheduling_mesacat(mesas[2], gv, 2, 3, 200)72 # quinta mesa73 identificar_mesa(mesas[3], fiscal)74 identificar_mesa(mesas[4], fiscal)75 verificar_valores_scheduling_mesacat(mesas[4], pv, 3, 5, 300)76 verificar_valores_scheduling_mesacat(mesas[4], gv, 3, 5, 1500)77 # mesa 1978 for nro in range(5, 19):79 identificar_mesa(mesas[nro], fiscal)80 verificar_valores_scheduling_mesacat(mesas[18], pv, 10, 19, 1000)81 verificar_valores_scheduling_mesacat(mesas[18], gv, 10, 19, 5000)82 # mesa 2083 identificar_mesa(mesas[19], fiscal)84 verificar_valores_scheduling_mesacat(mesas[19], pv, 10, 20, 1000)85 verificar_valores_scheduling_mesacat(mesas[19], gv, 10, 20, 5000)86 # mesa 2187 identificar_mesa(mesas[20], fiscal)88 verificar_valores_scheduling_mesacat(mesas[20], pv, 11, 21, 8800)89 verificar_valores_scheduling_mesacat(mesas[20], gv, 11, 21, 44000)90 # mesa 5191 for nro in range(21, 51):92 identificar_mesa(mesas[nro], fiscal)93 verificar_valores_scheduling_mesacat(mesas[50], pv, 26, 51, 800 * 26)94 verificar_valores_scheduling_mesacat(mesas[50], gv, 26, 51, 4000 * 26)95def test_orden_de_carga_cantidad_mesas_prioritarias(db, settings):96 """97 Se verifica la asignacion de ordenes de carga para una seccion en la que se establece un minimo de mesas98 con maxima prioridad; con una categoria standard99 """100 asignar_prioridades_standard(settings)101 settings.MIN_COINCIDENCIAS_IDENTIFICACION = 1102 fiscal = nuevo_fiscal()103 # una seccion standard, un circuito, 30 mesas en el mismo lugar de votacion, dos categorias standard104 la_seccion, circuito, lugar_votacion = crear_seccion("Bera centro")105 pv = CategoriaFactory(nombre="PV")106 categorias = [pv]107 PrioridadSchedulingFactory(seccion=la_seccion, desde_proporcion=0, hasta_proporcion=2, prioridad=2, hasta_cantidad=7)108 [mesas] = crear_mesas([lugar_votacion], categorias, 30)109 # primera mesa110 identificar_mesa(mesas[0], fiscal)111 verificar_valores_scheduling_mesacat(mesas[0], pv, 1, 1, 200)112 # segunda mesa113 identificar_mesa(mesas[1], fiscal)114 verificar_valores_scheduling_mesacat(mesas[1], pv, 4, 2, 800)115 # sexta mesa116 for nro in range(2, 6):117 identificar_mesa(mesas[nro], fiscal)118 verificar_valores_scheduling_mesacat(mesas[5], pv, 17, 6, 3400)119 # mesa 7120 identificar_mesa(mesas[6], fiscal)121 verificar_valores_scheduling_mesacat(mesas[6], pv, 21, 7, 4200)122 # mesa 8123 identificar_mesa(mesas[7], fiscal)124 verificar_valores_scheduling_mesacat(mesas[7], pv, 24, 8, 240000)125 # mesa 20126 for nro in range(5, 20):127 identificar_mesa(mesas[nro], fiscal)128 verificar_valores_scheduling_mesacat(mesas[19], pv, 64, 20, 640000)129def test_orden_de_carga_overflow_numerico(db, settings):130 """131 Se verifica que ante prioridades altas, el coeficiente_para_orden_de_carga que entrega la aplicación132 no supera el lÃmite de un entero en la base de datos.133 """134 settings.MIN_COINCIDENCIAS_IDENTIFICACION = 1135 fiscal = nuevo_fiscal()136 seccion, circuito, lugar_votacion = crear_seccion("Algún lado")137 pv = CategoriaFactory(nombre="PV")138 categorias = [pv]139 PrioridadSchedulingFactory(seccion=seccion, desde_proporcion=0, hasta_proporcion=100, prioridad=1000000)140 PrioridadSchedulingFactory(categoria=pv, desde_proporcion=0, hasta_proporcion=100, prioridad=1000000)141 [mesas] = crear_mesas([lugar_votacion], categorias, 50)142 identificar_mesa(mesas[0], fiscal)143 verificar_valores_scheduling_mesacat(mesas[0], pv, 1, 1, 2**31-1)144def test_secuencia_carga_secciones_standard_prioritaria(db, settings):145 """146 Se verifica la secuencia con la que se asignan mesas considerando dos secciones,147 una standard y una prioritaria, de 100 mesas cada una148 """149 asignar_prioridades_standard(settings)150 settings.MIN_COINCIDENCIAS_IDENTIFICACION = 1151 fiscal = nuevo_fiscal()152 seccion_prioritaria, circuito_prioritario, lugar_votacion_prioritario = crear_seccion("Barrio marÃtimo")153 seccion_standard, circuito_standard, lugar_votacion_standard = crear_seccion("Bera centro")154 pv = CategoriaFactory(nombre="PV")155 categorias = [pv]156 PrioridadSchedulingFactory(seccion=seccion_prioritaria, desde_proporcion=0, hasta_proporcion=2, prioridad=2)157 PrioridadSchedulingFactory(seccion=seccion_prioritaria, desde_proporcion=2, hasta_proporcion=10, prioridad=8)158 PrioridadSchedulingFactory(seccion=seccion_prioritaria, desde_proporcion=10, hasta_proporcion=100, prioridad=40)159 mesas_seccion_standard, mesas_seccion_prioritaria = \160 crear_mesas([lugar_votacion_standard, lugar_votacion_prioritario], categorias, 100)161 # se identifican las mesas en orden162 for nro in range(100):163 identificar_mesa(mesas_seccion_standard[nro], fiscal)164 identificar_mesa(mesas_seccion_prioritaria[nro], fiscal)165 verificar_siguiente_mesacat(mesas_seccion_standard[0], pv) # mesacat 1166 verificar_siguiente_mesacat(mesas_seccion_prioritaria[0], pv) # mesacat 2167 verificar_siguiente_mesacat(mesas_seccion_standard[1], pv) # mesacat 3168 verificar_siguiente_mesacat(mesas_seccion_prioritaria[1], pv) # mesacat 4169 verificar_siguiente_mesacat(mesas_seccion_prioritaria[2], pv) # mesacat 5 - orden de carga 2400170 verificar_siguiente_mesacat(mesas_seccion_prioritaria[6], pv, 3) # mesacat 9 - orden de carga 5600171 verificar_siguiente_mesacat(mesas_seccion_standard[2], pv) # mesacat 10 - orden de carga 6000172 verificar_siguiente_mesacat(mesas_seccion_prioritaria[8], pv, 1) # mesacat 12 - orden de carga 7200173 verificar_siguiente_mesacat(mesas_seccion_standard[3], pv) # mesacat 13 - orden de carga 8000174 verificar_siguiente_mesacat(mesas_seccion_prioritaria[9], pv) # mesacat 14 - orden de carga 8000175 verificar_siguiente_mesacat(mesas_seccion_standard[4], pv) # mesacat 15 - orden de carga 10000176 verificar_siguiente_mesacat(mesas_seccion_standard[9], pv, 4) # mesacat 20 - orden de carga 10000177 verificar_siguiente_mesacat(mesas_seccion_prioritaria[10], pv) # mesacat 21 - orden de carga 44000178 verificar_siguiente_mesacat(mesas_seccion_prioritaria[25], pv, 14) # mesacat 36 - orden de carga 104000179 verificar_siguiente_mesacat(mesas_seccion_prioritaria[26], pv) # mesacat 37 - orden de carga 108000180 verificar_siguiente_mesacat(mesas_seccion_standard[10], pv) # mesacat 38 - orden de carga 110000181 verificar_siguiente_mesacat(mesas_seccion_prioritaria[27], pv) # mesacat 39 - orden de carga 112000182def test_secuencia_carga_escenario_complejo_1(db, settings):183 """184 Se verifica la secuencia con la que se asignan mesas considerando185 - dos secciones, una standard y una moderadamente prioritaria, de 50 mesas cada una186 - dos categorias, una standard y una muy prioritaria187 """188 asignar_prioridades_standard(settings)189 settings.MIN_COINCIDENCIAS_IDENTIFICACION = 1190 fiscal = nuevo_fiscal()191 seccion_prioritaria, circuito_prioritario, lugar_votacion_prioritario = crear_seccion("Barrio marÃtimo")192 seccion_standard, circuito_standard, lugar_votacion_standard = crear_seccion("Bera centro")193 pv = CategoriaFactory(nombre="PV")194 dip = CategoriaFactory(nombre="Diputados")195 categorias = [pv, dip]196 PrioridadSchedulingFactory(seccion=seccion_prioritaria, desde_proporcion=0,197 hasta_proporcion=2, prioridad=2)198 PrioridadSchedulingFactory(seccion=seccion_prioritaria, desde_proporcion=2,199 hasta_proporcion=10, prioridad=8)200 PrioridadSchedulingFactory(seccion=seccion_prioritaria, desde_proporcion=10,201 hasta_proporcion=100, prioridad=40)202 PrioridadSchedulingFactory(categoria=pv, desde_proporcion=0, hasta_proporcion=100, prioridad=12)203 mesas_seccion_standard, mesas_seccion_prioritaria = \204 crear_mesas([lugar_votacion_standard, lugar_votacion_prioritario], categorias, 50)205 # se identifican las mesas en orden206 for nro in range(50):207 identificar_mesa(mesas_seccion_standard[nro], fiscal)208 identificar_mesa(mesas_seccion_prioritaria[nro], fiscal)209 verificar_siguiente_mesacat(mesas_seccion_standard[0], pv) # mesacat 1 - orden de carga 24210 verificar_siguiente_mesacat(mesas_seccion_prioritaria[0], pv) # mesacat 2 - orden de carga 24211 verificar_siguiente_mesacat(mesas_seccion_standard[0], dip) # mesacat 3 - orden de carga 200212 verificar_siguiente_mesacat(mesas_seccion_prioritaria[0], dip) # mesacat 4 - orden de carga 200213 verificar_siguiente_mesacat(mesas_seccion_prioritaria[1], pv) # mesacat 5 - orden de carga 288214 verificar_siguiente_mesacat(mesas_seccion_prioritaria[2], pv) # mesacat 6 - orden de carga 480215 verificar_siguiente_mesacat(mesas_seccion_prioritaria[3], pv) # mesacat 7 - orden de carga 672216 verificar_siguiente_mesacat(mesas_seccion_standard[1], pv) # mesacat 8 - orden de carga 720217 verificar_siguiente_mesacat(mesas_seccion_prioritaria[4], pv) # mesacat 9 - orden de carga 864218 verificar_siguiente_mesacat(mesas_seccion_standard[2], pv) # mesacat 10 - orden de carga 1200219 verificar_siguiente_mesacat(mesas_seccion_standard[3], pv) # mesacat 11 - orden de carga 1680220 verificar_siguiente_mesacat(mesas_seccion_standard[4], pv) # mesacat 12 - orden de carga 2160221 verificar_siguiente_mesacat(mesas_seccion_prioritaria[1], dip) # mesacat 13 - orden de carga 2400222 verificar_siguiente_mesacat(mesas_seccion_prioritaria[2], dip) # mesacat 14 - orden de carga 4000223 verificar_siguiente_mesacat(mesas_seccion_prioritaria[5], pv) # mesacat 15 - orden de carga 5280224 verificar_siguiente_mesacat(mesas_seccion_prioritaria[3], dip) # mesacat 16 - orden de carga 5600225 verificar_siguiente_mesacat(mesas_seccion_standard[1], dip) # mesacat 17 - orden de carga 6000226 verificar_siguiente_mesacat(mesas_seccion_prioritaria[6], pv) # mesacat 18 - orden de carga 6240227 verificar_siguiente_mesacat(mesas_seccion_prioritaria[4], dip) # mesacat 19 - orden de carga 7200228 verificar_siguiente_mesacat(mesas_seccion_prioritaria[7], pv) # mesacat 20 - orden de carga 7200229 verificar_siguiente_mesacat(mesas_seccion_prioritaria[8], pv) # mesacat 21 - orden de carga 8160230 verificar_siguiente_mesacat(mesas_seccion_prioritaria[9], pv) # mesacat 22 - orden de carga 9120231 verificar_siguiente_mesacat(mesas_seccion_standard[2], dip) # mesacat 23 - orden de carga 10000232 verificar_siguiente_mesacat(mesas_seccion_prioritaria[10], pv) # mesacat 24 - orden de carga 10080233 verificar_siguiente_mesacat(mesas_seccion_prioritaria[13], pv, 2) # mesacat 27 - orden de carga 12960234 verificar_siguiente_mesacat(mesas_seccion_standard[5], pv) # mesacat 28 - orden de carga 13200235 verificar_siguiente_mesacat(mesas_seccion_prioritaria[14], pv) # mesacat 29 - orden de carga 13920236 verificar_siguiente_mesacat(mesas_seccion_standard[3], dip) # mesacat 30 - orden de carga 10000237 verificar_siguiente_mesacat(mesas_seccion_prioritaria[18], pv, 4) # mesacat 35 - orden de carga 17760238 verificar_siguiente_mesacat(mesas_seccion_standard[4], dip) # mesacat 36 - orden de carga 18000239 verificar_siguiente_mesacat(mesas_seccion_standard[7], pv) # mesacat 37 - orden de carga 18000240 verificar_siguiente_mesacat(mesas_seccion_prioritaria[5], dip, 37) # mesacat 75 - orden de carga 44000241 verificar_siguiente_mesacat(mesas_seccion_standard[18], pv) # mesacat 76 - orden de carga 44400242 verificar_siguiente_mesacat(mesas_seccion_prioritaria[46], pv) # mesacat 77 - orden de carga 44640243 verificar_siguiente_mesacat(mesas_seccion_prioritaria[49], pv, 3) # mesacat 81 - orden de carga 47520244 verificar_siguiente_mesacat(mesas_seccion_prioritaria[6], dip, 2) # mesacat 84 - orden de carga 52000245 verificar_siguiente_mesacat(mesas_seccion_standard[22], pv) # mesacat 85 - orden de carga 54000246 verificar_siguiente_mesacat(mesas_seccion_prioritaria[13], dip, 28) # mesacat 114 - orden de carga 108000247 verificar_siguiente_mesacat(mesas_seccion_standard[45], pv) # mesacat 115 - orden de carga 109200248 verificar_siguiente_mesacat(mesas_seccion_standard[5], dip) # mesacat 116 - orden de carga 110000249 verificar_siguiente_mesacat(mesas_seccion_standard[49], pv, 4) # mesacat 121 - orden de carga 118800250 verificar_siguiente_mesacat(mesas_seccion_standard[9], dip, 12) # mesacat 134 - orden de carga 190000251 verificar_siguiente_mesacat(mesas_seccion_prioritaria[24], dip) # mesacat 135 - orden de carga 196000252def test_secuencia_carga_escenario_complejo_2(db, settings):253 """254 Se verifica la secuencia con la que se asignan mesas considerando 255 - dos secciones, una standard y una muy prioritaria, de 50 mesas cada una256 - dos categorias, una standard y una moderadamente prioritaria257 """258 asignar_prioridades_standard(settings)259 settings.MIN_COINCIDENCIAS_IDENTIFICACION = 1260 fiscal = nuevo_fiscal()261 seccion_prioritaria, circuito_prioritario, lugar_votacion_prioritario = crear_seccion("Barrio marÃtimo")262 seccion_standard, circuito_standard, lugar_votacion_standard = crear_seccion("Bera centro")263 pv = CategoriaFactory(nombre="PV")264 dip = CategoriaFactory(nombre="Diputados")265 categorias = [pv, dip]266 PrioridadSchedulingFactory(seccion=seccion_prioritaria, desde_proporcion=0,267 hasta_proporcion=2, prioridad=2)268 PrioridadSchedulingFactory(seccion=seccion_prioritaria, desde_proporcion=2,269 hasta_proporcion=10, prioridad=5)270 PrioridadSchedulingFactory(seccion=seccion_prioritaria, desde_proporcion=10,271 hasta_proporcion=100, prioridad=25)272 PrioridadSchedulingFactory(categoria=pv, desde_proporcion=0, hasta_proporcion=100, prioridad=30)273 mesas_seccion_standard, mesas_seccion_prioritaria = \274 crear_mesas([lugar_votacion_standard, lugar_votacion_prioritario], categorias, 50)275 # se identifican las mesas en orden276 for nro in range(50):277 identificar_mesa(mesas_seccion_standard[nro], fiscal)278 identificar_mesa(mesas_seccion_prioritaria[nro], fiscal)279 verificar_siguiente_mesacat(mesas_seccion_standard[0], pv) # mesacat 1 - orden de carga 60280 verificar_siguiente_mesacat(mesas_seccion_prioritaria[0], pv) # mesacat 2 - orden de carga 24281 verificar_siguiente_mesacat(mesas_seccion_standard[0], dip) # mesacat 3 - orden de carga 200282 verificar_siguiente_mesacat(mesas_seccion_prioritaria[0], dip) # mesacat 4 - orden de carga 200283 verificar_siguiente_mesacat(mesas_seccion_prioritaria[1], pv) # mesacat 5 - orden de carga 450284 verificar_siguiente_mesacat(mesas_seccion_prioritaria[2], pv) # mesacat 6 - orden de carga 750285 verificar_siguiente_mesacat(mesas_seccion_prioritaria[3], pv) # mesacat 7 - orden de carga 1050286 verificar_siguiente_mesacat(mesas_seccion_prioritaria[4], pv) # mesacat 8 - orden de carga 1350287 verificar_siguiente_mesacat(mesas_seccion_prioritaria[1], dip) # mesacat 9 - orden de carga 1500288 verificar_siguiente_mesacat(mesas_seccion_standard[1], pv) # mesacat 10 - orden de carga 1800289 verificar_siguiente_mesacat(mesas_seccion_prioritaria[2], dip) # mesacat 11 - orden de carga 2500290 verificar_siguiente_mesacat(mesas_seccion_standard[2], pv) # mesacat 12 - orden de carga 3000291 verificar_siguiente_mesacat(mesas_seccion_prioritaria[3], dip) # mesacat 13 - orden de carga 3500292 verificar_siguiente_mesacat(mesas_seccion_standard[3], pv) # mesacat 14 - orden de carga 4200293 verificar_siguiente_mesacat(mesas_seccion_prioritaria[4], dip) # mesacat 15 - orden de carga 4500294 verificar_siguiente_mesacat(mesas_seccion_standard[4], pv) # mesacat 16 - orden de carga 5400295 verificar_siguiente_mesacat(mesas_seccion_standard[1], dip) # mesacat 17 - orden de carga 6000296 verificar_siguiente_mesacat(mesas_seccion_prioritaria[11], pv, 8) # mesacat 26 - orden de carga 17250297 verificar_siguiente_mesacat(mesas_seccion_standard[4], dip) # mesacat 27 - orden de carga 18000298 verificar_siguiente_mesacat(mesas_seccion_prioritaria[5], dip, 6) # mesacat 34 - orden de carga 27500299 verificar_siguiente_mesacat(mesas_seccion_prioritaria[6], dip, 4) # mesacat 39 - orden de carga 32500300 verificar_siguiente_mesacat(mesas_seccion_standard[5], pv) # mesacat 40 - orden de carga 33000301 verificar_siguiente_mesacat(mesas_seccion_prioritaria[22], pv) # mesacat 41 - orden de carga 33750302 verificar_siguiente_mesacat(mesas_seccion_prioritaria[14], dip, 38) # mesacat 80 - orden de carga 72500303 verificar_siguiente_mesacat(mesas_seccion_prioritaria[48], pv) # mesacat 81 - orden de carga 72750304 verificar_siguiente_mesacat(mesas_seccion_prioritaria[49], pv) # mesacat 82 - orden de carga 74250305 verificar_siguiente_mesacat(mesas_seccion_standard[12], pv) # mesacat 83 - orden de carga 75000306def test_secuencia_carga_seccion_con_corte(db, settings):307 """308 Se verifica la secuencia con la que se asignan mesas considerando 309 - tres secciones: una standard, una prioritaria, una con corte a las 7 mesas, de 50 mesas cada una310 - una categoria standard311 """312 asignar_prioridades_standard(settings)313 settings.MIN_COINCIDENCIAS_IDENTIFICACION = 1314 fiscal = nuevo_fiscal()315 seccion_prioritaria, circuito_prioritario, lugar_votacion_prioritario = crear_seccion("Barrio marÃtimo")316 seccion_standard, circuito_standard, lugar_votacion_standard = crear_seccion("Bera centro")317 seccion_corte, circuito_corte, lugar_votacion_corte = crear_seccion("Solano")318 pv = CategoriaFactory(nombre="PV")319 categorias = [pv]320 PrioridadSchedulingFactory(seccion=seccion_prioritaria, desde_proporcion=0,321 hasta_proporcion=2, prioridad=2)322 PrioridadSchedulingFactory(seccion=seccion_prioritaria, desde_proporcion=2,323 hasta_proporcion=10, prioridad=8)324 PrioridadSchedulingFactory(seccion=seccion_prioritaria, desde_proporcion=10,325 hasta_proporcion=100, prioridad=40)326 PrioridadSchedulingFactory(seccion=seccion_corte, desde_proporcion=0,327 hasta_proporcion=2, prioridad=2, hasta_cantidad=7)328 mesas_seccion_standard, mesas_seccion_prioritaria, mesas_seccion_corte = \329 crear_mesas([lugar_votacion_standard, lugar_votacion_prioritario, lugar_votacion_corte], categorias, 50)330 # se identifican las mesas en orden331 for nro in range(50):332 identificar_mesa(mesas_seccion_standard[nro], fiscal)333 identificar_mesa(mesas_seccion_prioritaria[nro], fiscal)334 identificar_mesa(mesas_seccion_corte[nro], fiscal)335 verificar_siguiente_mesacat(mesas_seccion_standard[0], pv) # mesacat 1 - orden de carga 200336 verificar_siguiente_mesacat(mesas_seccion_prioritaria[0], pv) # mesacat 2 - orden de carga 200337 verificar_siguiente_mesacat(mesas_seccion_corte[0], pv) # mesacat 3 - orden de carga 200338 verificar_siguiente_mesacat(mesas_seccion_corte[1], pv) # mesacat 4 - orden de carga 600339 verificar_siguiente_mesacat(mesas_seccion_corte[2], pv) # mesacat 5 - orden de carga 1000340 verificar_siguiente_mesacat(mesas_seccion_corte[3], pv) # mesacat 6 - orden de carga 1400341 verificar_siguiente_mesacat(mesas_seccion_corte[4], pv) # mesacat 7 - orden de carga 1800342 verificar_siguiente_mesacat(mesas_seccion_corte[5], pv) # mesacat 8 - orden de carga 2200343 verificar_siguiente_mesacat(mesas_seccion_prioritaria[1], pv) # mesacat 9 - orden de carga 2400344 verificar_siguiente_mesacat(mesas_seccion_corte[6], pv) # mesacat 10 - orden de carga 2600345 verificar_siguiente_mesacat(mesas_seccion_prioritaria[2], pv) # mesacat 11 - orden de carga 4000346 verificar_siguiente_mesacat(mesas_seccion_prioritaria[3], pv) # mesacat 12 - orden de carga 5600347 verificar_siguiente_mesacat(mesas_seccion_standard[1], pv) # mesacat 13 - orden de carga 6000348 verificar_siguiente_mesacat(mesas_seccion_prioritaria[4], pv) # mesacat 14 - orden de carga 7200349 verificar_siguiente_mesacat(mesas_seccion_standard[2], pv) # mesacat 15 - orden de carga 10000350 verificar_siguiente_mesacat(mesas_seccion_standard[3], pv) # mesacat 16 - orden de carga 14000351 verificar_siguiente_mesacat(mesas_seccion_standard[4], pv) # mesacat 17 - orden de carga 18000352 verificar_siguiente_mesacat(mesas_seccion_prioritaria[5], pv) # mesacat 18 - orden de carga 44000353 verificar_siguiente_mesacat(mesas_seccion_prioritaria[6], pv) # mesacat 19 - orden de carga 52000354 verificar_siguiente_mesacat(mesas_seccion_standard[5], pv, 7) # mesacat 27 - orden de carga 110000355 verificar_siguiente_mesacat(mesas_seccion_prioritaria[14], pv) # mesacat 28 - orden de carga 116000356 verificar_siguiente_mesacat(mesas_seccion_standard[7], pv, 5) # mesacat 34 - orden de carga 150000357 verificar_siguiente_mesacat(mesas_seccion_corte[7], pv) # mesacat 35 - orden de carga 150000358 # ... y a partir de este punto, las mesas de standard y corte se cargan parejo359 verificar_siguiente_mesacat(mesas_seccion_standard[14], pv, 29) # mesacat 65 - orden de carga 290000360 verificar_siguiente_mesacat(mesas_seccion_corte[14], pv) # mesacat 66 - orden de carga 290000361 verificar_siguiente_mesacat(mesas_seccion_prioritaria[36], pv) # mesacat 67 - orden de carga 292000362def test_excluir_fiscal_que_ya_cargo(db, settings):363 """364 Se verifica que no se propone una MesaCategoria para cargar, a un fiscal que ya hizo una carga365 sobre esa MesaCategoria.366 """367 settings.MIN_COINCIDENCIAS_IDENTIFICACION = 1368 settings.MIN_COINCIDENCIAS_CARGAS = 2369 fiscal_1 = nuevo_fiscal()370 fiscal_2 = nuevo_fiscal()371 fiscal_3 = nuevo_fiscal()372 pv = CategoriaFactory(nombre="PV")373 gv = CategoriaFactory(nombre="GV")374 # hago que la categoria pv sea prioritaria375 PrioridadSchedulingFactory(categoria=pv, desde_proporcion=0, hasta_proporcion=100, prioridad=30)376 mesa = MesaFactory(numero="51", categorias=[gv, pv])377 identificar_mesa(mesa, fiscal_3)378 mesacat_pv = MesaCategoria.objects.filter(mesa=mesa, categoria=pv).first()379 mesacat_gv = MesaCategoria.objects.filter(mesa=mesa, categoria=gv).first()380 # antes de cargar, la siguiente mesacat para ambos fiscales es pv, que es más prioritaria381 mesacat_fiscal_2 = MesaCategoria.objects.con_carga_pendiente().sin_cargas_del_fiscal(fiscal_2).mas_prioritaria()382 mesacat_fiscal_3 = MesaCategoria.objects.con_carga_pendiente().sin_cargas_del_fiscal(fiscal_3).mas_prioritaria()383 assert mesacat_fiscal_2 == mesacat_pv384 assert mesacat_fiscal_3 == mesacat_pv385 # agrego una carga 386 carga = CargaFactory(mesa_categoria=mesacat_pv, fiscal=fiscal_2, tipo=Carga.TIPOS.parcial)387 # la siguiente mesacat para el fiscal_2 es gv, porque de pv ya hizo una carga388 # la del fiscal 3 es pv, que es más prioritaria389 mesacat_fiscal_2 = MesaCategoria.objects.con_carga_pendiente().sin_cargas_del_fiscal(fiscal_2).mas_prioritaria()390 mesacat_fiscal_3 = MesaCategoria.objects.con_carga_pendiente().sin_cargas_del_fiscal(fiscal_3).mas_prioritaria()391 assert mesacat_fiscal_2 == mesacat_gv392 assert mesacat_fiscal_3 == mesacat_pv393 # el fiscal 2 carga la mesacat que le queda394 carga = CargaFactory(mesa_categoria=mesacat_gv, fiscal=fiscal_2, tipo=Carga.TIPOS.parcial)395 # ahora el fiscal 2 no tiene mesacat para cargar, el fiscal 3 sigue con pv como prioritaria396 mesacat_fiscal_2 = MesaCategoria.objects.con_carga_pendiente().sin_cargas_del_fiscal(fiscal_2).mas_prioritaria()397 mesacat_fiscal_3 = MesaCategoria.objects.con_carga_pendiente().sin_cargas_del_fiscal(fiscal_3).mas_prioritaria()398 assert mesacat_fiscal_2 == None...
test_configuracion.py
Source:test_configuracion.py
1import pytest2from elecciones.tests.factories import (3 SeccionFactory, CategoriaFactory4)5from scheduling.models import PrioridadScheduling6from .utils_para_test import (7 asignar_prioridades_standard, crear_mesas, crear_seccion, nuevo_fiscal, identificar_mesa,8 verificar_valores_scheduling_mesacat, verificar_siguiente_mesacat9)10def test_configuracion_categoria(db):11 categoria=CategoriaFactory(prioridad=15)12 prioridades = PrioridadScheduling.objects.filter(categoria=categoria)13 assert prioridades.count() == 1 14 assert prioridades.first().prioridad == 1515 categoria.prioridad = 2116 categoria.save(update_fields=['prioridad'])17 prioridades = PrioridadScheduling.objects.filter(categoria=categoria)18 assert prioridades.count() == 119 assert prioridades.first().prioridad == 2120 categoria.prioridad = None21 categoria.save(update_fields=['prioridad'])22 prioridades = PrioridadScheduling.objects.filter(categoria=categoria)23 assert prioridades.count() == 024 categoria_2 = CategoriaFactory()25 prioridades = PrioridadScheduling.objects.filter(categoria=categoria)26 assert prioridades.count() == 027def test_configuracion_seccion(db):28 seccion = SeccionFactory(prioridad_hasta_2=1, prioridad_2_a_10=12)29 seccion_2 = SeccionFactory()30 prioridades = PrioridadScheduling.objects.filter(seccion=seccion)31 assert prioridades.count() == 232 assert prioridades.filter(desde_proporcion=0).first().prioridad == 133 assert prioridades.filter(desde_proporcion=0).first().hasta_cantidad is None34 assert prioridades.filter(desde_proporcion=2).first().prioridad == 1235 assert prioridades.filter(desde_proporcion=2).first().hasta_proporcion == 1036 prioridades = PrioridadScheduling.objects.filter(seccion=seccion_2)37 assert prioridades.count() == 038 seccion.prioridad_hasta_2 = None39 seccion.prioridad_2_a_10 = 1540 seccion.prioridad_10_a_100 = 4541 seccion.save(update_fields=['prioridad_hasta_2', 'prioridad_2_a_10', 'prioridad_10_a_100'])42 prioridades = PrioridadScheduling.objects.filter(seccion=seccion)43 assert prioridades.count() == 244 assert prioridades.filter(desde_proporcion=2).first().prioridad == 1545 assert prioridades.filter(desde_proporcion=10).first().prioridad == 4546 assert prioridades.filter(desde_proporcion=10).first().hasta_proporcion == 10047 seccion.prioridad_hasta_2 = 348 seccion.cantidad_minima_prioridad_hasta_2 = 749 seccion.save(update_fields=['prioridad_hasta_2', 'cantidad_minima_prioridad_hasta_2'])50 prioridades = PrioridadScheduling.objects.filter(seccion=seccion)51 assert prioridades.count() == 352 assert prioridades.filter(desde_proporcion=0).first().prioridad == 353 assert prioridades.filter(desde_proporcion=0).first().hasta_cantidad == 754 assert prioridades.filter(desde_proporcion=2).first().prioridad == 1555 assert prioridades.filter(desde_proporcion=2).first().categoria is None56 assert prioridades.filter(desde_proporcion=10).first().prioridad == 4557 assert prioridades.filter(desde_proporcion=10).first().hasta_proporcion == 10058def test_configuracion_seccion_set_hasta_cantidad_no_prioridad(db, settings):59 asignar_prioridades_standard(settings)60 seccion = SeccionFactory(cantidad_minima_prioridad_hasta_2=9)61 prioridades = PrioridadScheduling.objects.filter(seccion=seccion)62 assert prioridades.count() == 163 assert prioridades.filter(desde_proporcion=0).first().prioridad is None64 assert prioridades.filter(desde_proporcion=0).first().hasta_cantidad == 965def test_cambio_prioridades_general(db, settings):66 """67 Se verifica el efecto de cambiar prioridades de una categorÃa o sección, en los coeficiente_para_orden_de_carga de las MesaCategoria.68 Se desarrolla una "historia" que combina identificaciones, cargas y cambios de prioridad.69 Se verifica que cada cambio de prioridades afecta exactamente a las MesaCategoria que corresponde.70 El autor pide disculpas por anticipado por la longitud de este test.71 """72 asignar_prioridades_standard(settings)73 settings.MIN_COINCIDENCIAS_IDENTIFICACION = 174 fiscal = nuevo_fiscal()75 seccion_1, circuito_1, lugar_votacion_1 = crear_seccion("Barrio maritimo")76 seccion_2, circuito_2, lugar_votacion_2 = crear_seccion("Bera centro")77 pv = CategoriaFactory(nombre="PV")78 gv = CategoriaFactory(nombre="GV")79 categorias = [pv, gv]80 mesas_seccion_1, mesas_seccion_2 = \81 crear_mesas([lugar_votacion_1, lugar_votacion_2], categorias, 20)82 # identifico las 10 primeras mesas de la sección 183 for nro in range(10):84 identificar_mesa(mesas_seccion_1[nro], fiscal)85 # simulo carga total para las primeras 5 mesacat en orden de carga, 86 # van a ser, para la sección 1: mesa 0 - pv , mesa 0 - gv , mesa 1 - pv ,mesa 1 - gv , mesa 2 - pv87 verificar_siguiente_mesacat(mesas_seccion_1[0], pv)88 verificar_siguiente_mesacat(mesas_seccion_1[0], gv)89 verificar_siguiente_mesacat(mesas_seccion_1[1], pv)90 verificar_siguiente_mesacat(mesas_seccion_1[1], gv)91 verificar_siguiente_mesacat(mesas_seccion_1[2], pv)92 # ahora, identifico las 10 primeras mesas de la sección 293 for nro in range(10):94 identificar_mesa(mesas_seccion_2[nro], fiscal)95 # verifico prioridades seteadas y no seteadas, hasta acá tienen el mismo orden de carga en ambas secciones96 # y en ambas categorÃas97 for mesas in [mesas_seccion_1, mesas_seccion_2]:98 verificar_valores_scheduling_mesacat(mesas[0], pv, 1, 1, 200)99 verificar_valores_scheduling_mesacat(mesas[0], gv, 1, 1, 200)100 verificar_valores_scheduling_mesacat(mesas[1], pv, 6, 2, 12000)101 verificar_valores_scheduling_mesacat(mesas[1], gv, 6, 2, 12000)102 verificar_valores_scheduling_mesacat(mesas[2], pv, 11, 3, 110000)103 verificar_valores_scheduling_mesacat(mesas[2], gv, 11, 3, 110000)104 verificar_valores_scheduling_mesacat(mesas[3], pv, 16, 4, 160000)105 verificar_valores_scheduling_mesacat(mesas[3], gv, 16, 4, 160000)106 verificar_valores_scheduling_mesacat(mesas[9], pv, 46, 10, 460000)107 verificar_valores_scheduling_mesacat(mesas[9], gv, 46, 10, 460000)108 verificar_valores_scheduling_mesacat(mesas[10], pv, None, None, None)109 verificar_valores_scheduling_mesacat(mesas[10], gv, None, None, None)110 # le cambio la prioridad a la categorÃa PV111 pv.prioridad = 15112 pv.save(update_fields=['prioridad'])113 # deberÃa cambiar la prioridad para las mesacat que estén identificadas pero no tengan carga total114 verificar_valores_scheduling_mesacat(mesas_seccion_1[0], pv, 1, 1, 200) # ya está cargada115 verificar_valores_scheduling_mesacat(mesas_seccion_2[0], pv, 1, 1, 30) # no se cargó y está identificada 116 verificar_valores_scheduling_mesacat(mesas_seccion_1[0], gv, 1, 1, 200) # ya está cargada117 verificar_valores_scheduling_mesacat(mesas_seccion_2[0], gv, 1, 1, 200) # no cambia la prioridad de esta categorÃa118 verificar_valores_scheduling_mesacat(mesas_seccion_1[1], pv, 6, 2, 12000) # ya está cargada119 verificar_valores_scheduling_mesacat(mesas_seccion_2[1], pv, 6, 2, 1800) # no se cargó y está identificada 120 verificar_valores_scheduling_mesacat(mesas_seccion_1[1], gv, 6, 2, 12000) # ya está cargada121 verificar_valores_scheduling_mesacat(mesas_seccion_2[1], gv, 6, 2, 12000) # no cambia la prioridad de esta categorÃa122 verificar_valores_scheduling_mesacat(mesas_seccion_1[2], pv, 11, 3, 110000) # ya está cargada123 verificar_valores_scheduling_mesacat(mesas_seccion_2[2], pv, 11, 3, 16500) # no se cargó y está identificada 124 verificar_valores_scheduling_mesacat(mesas_seccion_1[2], gv, 11, 3, 110000) # no cambia la prioridad de esta categorÃa125 verificar_valores_scheduling_mesacat(mesas_seccion_2[2], gv, 11, 3, 110000) # no cambia la prioridad de esta categorÃa126 verificar_valores_scheduling_mesacat(mesas_seccion_1[3], pv, 16, 4, 24000) # no se cargó y está identificada 127 verificar_valores_scheduling_mesacat(mesas_seccion_2[3], pv, 16, 4, 24000) # no se cargó y está identificada 128 verificar_valores_scheduling_mesacat(mesas_seccion_1[3], gv, 16, 4, 160000) # no cambia la prioridad de esta categorÃa129 verificar_valores_scheduling_mesacat(mesas_seccion_2[3], gv, 16, 4, 160000) # no cambia la prioridad de esta categorÃa130 verificar_valores_scheduling_mesacat(mesas_seccion_1[9], pv, 46, 10, 69000) # no se cargó y está identificada 131 verificar_valores_scheduling_mesacat(mesas_seccion_2[9], pv, 46, 10, 69000) # no se cargó y está identificada 132 verificar_valores_scheduling_mesacat(mesas_seccion_1[9], gv, 46, 10, 460000) # no cambia la prioridad de esta categorÃa133 verificar_valores_scheduling_mesacat(mesas_seccion_2[9], gv, 46, 10, 460000) # no cambia la prioridad de esta categorÃa134 verificar_valores_scheduling_mesacat(mesas_seccion_1[10], pv, None, None, None) # no está identificada135 verificar_valores_scheduling_mesacat(mesas_seccion_2[10], pv, None, None, None) # no está identificada136 verificar_valores_scheduling_mesacat(mesas_seccion_1[10], gv, None, None, None) # no está identificada137 verificar_valores_scheduling_mesacat(mesas_seccion_2[10], gv, None, None, None) # no está identificada138 verificar_valores_scheduling_mesacat(mesas_seccion_1[11], pv, None, None, None) # no está identificada139 verificar_valores_scheduling_mesacat(mesas_seccion_2[11], pv, None, None, None) # no está identificada140 verificar_valores_scheduling_mesacat(mesas_seccion_1[11], gv, None, None, None) # no está identificada141 verificar_valores_scheduling_mesacat(mesas_seccion_2[11], gv, None, None, None) # no está identificada142 # identifico dos mesas más, una de cada sección. Me fijo que les asigne las prioridades adecuadas143 identificar_mesa(mesas_seccion_1[10], fiscal)144 identificar_mesa(mesas_seccion_2[10], fiscal)145 verificar_valores_scheduling_mesacat(mesas_seccion_1[10], pv, 51, 11, 76500)146 verificar_valores_scheduling_mesacat(mesas_seccion_2[10], pv, 51, 11, 76500)147 verificar_valores_scheduling_mesacat(mesas_seccion_1[10], gv, 51, 11, 510000)148 verificar_valores_scheduling_mesacat(mesas_seccion_2[10], gv, 51, 11, 510000)149 # cambio las prioridades de la sección 1150 seccion_1.prioridad_hasta_2 = 1151 seccion_1.prioridad_2_a_10 = 12152 seccion_1.prioridad_10_a_100 = 30153 seccion_1.save(update_fields=['prioridad_hasta_2', 'prioridad_2_a_10', 'prioridad_10_a_100'])154 # a ver ahora155 verificar_valores_scheduling_mesacat(mesas_seccion_1[0], pv, 1, 1, 200) # ya está cargada156 verificar_valores_scheduling_mesacat(mesas_seccion_2[0], pv, 1, 1, 30) # no cambia la prioridad de esta sección157 verificar_valores_scheduling_mesacat(mesas_seccion_1[0], gv, 1, 1, 200) # ya está cargada158 verificar_valores_scheduling_mesacat(mesas_seccion_2[0], gv, 1, 1, 200) # no cambia la prioridad de esta sección159 verificar_valores_scheduling_mesacat(mesas_seccion_1[1], pv, 6, 2, 12000) # ya está cargada160 verificar_valores_scheduling_mesacat(mesas_seccion_2[1], pv, 6, 2, 1800) # no cambia la prioridad de esta sección161 verificar_valores_scheduling_mesacat(mesas_seccion_1[1], gv, 6, 2, 12000) # ya está cargada162 verificar_valores_scheduling_mesacat(mesas_seccion_2[1], gv, 6, 2, 12000) # no cambia la prioridad de esta sección163 verificar_valores_scheduling_mesacat(mesas_seccion_1[2], pv, 11, 3, 110000) # ya está cargada164 verificar_valores_scheduling_mesacat(mesas_seccion_2[2], pv, 11, 3, 16500) # no cambia la prioridad de esta sección165 verificar_valores_scheduling_mesacat(mesas_seccion_1[2], gv, 11, 3, 33000) # no se cargó y está identificada 166 verificar_valores_scheduling_mesacat(mesas_seccion_2[2], gv, 11, 3, 110000) # no cambia la prioridad de esta sección167 verificar_valores_scheduling_mesacat(mesas_seccion_1[3], pv, 16, 4, 7200) # no se cargó y está identificada 168 verificar_valores_scheduling_mesacat(mesas_seccion_2[3], pv, 16, 4, 24000) # no cambia la prioridad de esta sección169 verificar_valores_scheduling_mesacat(mesas_seccion_1[3], gv, 16, 4, 48000) # no se cargó y está identificada170 verificar_valores_scheduling_mesacat(mesas_seccion_2[3], gv, 16, 4, 160000) # no cambia la prioridad de esta sección171 verificar_valores_scheduling_mesacat(mesas_seccion_1[9], pv, 46, 10, 20700) # no se cargó y está identificada 172 verificar_valores_scheduling_mesacat(mesas_seccion_2[9], pv, 46, 10, 69000) # no cambia la prioridad de esta sección173 verificar_valores_scheduling_mesacat(mesas_seccion_1[9], gv, 46, 10, 138000) # no se cargó y está identificada 174 verificar_valores_scheduling_mesacat(mesas_seccion_2[9], gv, 46, 10, 460000) # no cambia la prioridad de esta sección175 verificar_valores_scheduling_mesacat(mesas_seccion_1[10], pv, 51, 11, 22950) # no se cargó y está identificada 176 verificar_valores_scheduling_mesacat(mesas_seccion_2[10], pv, 51, 11, 76500) # no cambia la prioridad de esta sección177 verificar_valores_scheduling_mesacat(mesas_seccion_1[10], gv, 51, 11, 153000) # no se cargó y está identificada 178 verificar_valores_scheduling_mesacat(mesas_seccion_2[10], gv, 51, 11, 510000) # no cambia la prioridad de esta sección179 verificar_valores_scheduling_mesacat(mesas_seccion_1[11], pv, None, None, None) # no está identificada180 verificar_valores_scheduling_mesacat(mesas_seccion_2[11], pv, None, None, None) # no está identificada181 verificar_valores_scheduling_mesacat(mesas_seccion_1[11], gv, None, None, None) # no está identificada182 verificar_valores_scheduling_mesacat(mesas_seccion_2[11], gv, None, None, None) # no está identificada183 # simulo carga total para las siguientes 2 mesacat en orden de carga,184 # van a ser, para la sección 2: mesa 0 - pv , mesa 0 - gv185 verificar_siguiente_mesacat(mesas_seccion_2[0], pv)186 verificar_siguiente_mesacat(mesas_seccion_2[0], gv)187 # vuelvo la categorÃa PV a valores default188 pv.prioridad = None189 pv.save(update_fields=['prioridad'])190 # a ver cómo terminamos191 verificar_valores_scheduling_mesacat(mesas_seccion_1[0], pv, 1, 1, 200) # ya está cargada192 verificar_valores_scheduling_mesacat(mesas_seccion_2[0], pv, 1, 1, 30) # ya está cargada193 verificar_valores_scheduling_mesacat(mesas_seccion_1[0], gv, 1, 1, 200) # ya está cargada194 verificar_valores_scheduling_mesacat(mesas_seccion_2[0], gv, 1, 1, 200) # ya está cargada195 verificar_valores_scheduling_mesacat(mesas_seccion_1[1], pv, 6, 2, 12000) # ya está cargada196 verificar_valores_scheduling_mesacat(mesas_seccion_2[1], pv, 6, 2, 12000) # no se cargó y está identificada 197 verificar_valores_scheduling_mesacat(mesas_seccion_1[1], gv, 6, 2, 12000) # ya está cargada198 verificar_valores_scheduling_mesacat(mesas_seccion_2[1], gv, 6, 2, 12000) # no cambia la prioridad de esta categorÃa199 verificar_valores_scheduling_mesacat(mesas_seccion_1[2], pv, 11, 3, 110000) # ya está cargada200 verificar_valores_scheduling_mesacat(mesas_seccion_2[2], pv, 11, 3, 110000) # no se cargó y está identificada 201 verificar_valores_scheduling_mesacat(mesas_seccion_1[2], gv, 11, 3, 33000) # no cambia la prioridad de esta categorÃa202 verificar_valores_scheduling_mesacat(mesas_seccion_2[2], gv, 11, 3, 110000) # no cambia la prioridad de esta categorÃa203 verificar_valores_scheduling_mesacat(mesas_seccion_1[3], pv, 16, 4, 48000) # no se cargó y está identificada 204 verificar_valores_scheduling_mesacat(mesas_seccion_2[3], pv, 16, 4, 160000) # no se cargó y está identificada 205 verificar_valores_scheduling_mesacat(mesas_seccion_1[3], gv, 16, 4, 48000) # no cambia la prioridad de esta categorÃa206 verificar_valores_scheduling_mesacat(mesas_seccion_2[3], gv, 16, 4, 160000) # no cambia la prioridad de esta categorÃa207 verificar_valores_scheduling_mesacat(mesas_seccion_1[9], pv, 46, 10, 138000) # no se cargó y está identificada 208 verificar_valores_scheduling_mesacat(mesas_seccion_2[9], pv, 46, 10, 460000) # no se cargó y está identificada 209 verificar_valores_scheduling_mesacat(mesas_seccion_1[9], gv, 46, 10, 138000) # no cambia la prioridad de esta categorÃa 210 verificar_valores_scheduling_mesacat(mesas_seccion_2[9], gv, 46, 10, 460000) # no cambia la prioridad de esta categorÃa211 verificar_valores_scheduling_mesacat(mesas_seccion_1[10], pv, 51, 11, 153000) # no se cargó y está identificada 212 verificar_valores_scheduling_mesacat(mesas_seccion_2[10], pv, 51, 11, 510000) # no se cargó y está identificada 213 verificar_valores_scheduling_mesacat(mesas_seccion_1[10], gv, 51, 11, 153000) # no cambia la prioridad de esta categorÃa214 verificar_valores_scheduling_mesacat(mesas_seccion_2[10], gv, 51, 11, 510000) # no cambia la prioridad de esta categorÃa215 verificar_valores_scheduling_mesacat(mesas_seccion_1[11], pv, None, None, None) # no está identificada216 verificar_valores_scheduling_mesacat(mesas_seccion_2[11], pv, None, None, None) # no está identificada217 verificar_valores_scheduling_mesacat(mesas_seccion_1[11], gv, None, None, None) # no está identificada218 verificar_valores_scheduling_mesacat(mesas_seccion_2[11], gv, None, None, None) # no está identificada219def test_cambio_prioridades_volver_parcialmente_a_default(db, settings):220 """221 Verifico que si para una sección, se vuelven algunos valores de prioridad al valor por defecto,222 entonces los coeficiente_para_orden_de_carga de las mesas se modifiquen de acuerdo a lo esperado.223 """224 asignar_prioridades_standard(settings)225 settings.MIN_COINCIDENCIAS_IDENTIFICACION = 1226 fiscal = nuevo_fiscal()227 seccion_1, circuito_1, lugar_votacion_1 = crear_seccion("Barrio maritimo")228 pv = CategoriaFactory(nombre="PV")229 gv = CategoriaFactory(nombre="GV")230 categorias = [pv, gv]231 seccion_1.prioridad_hasta_2 = 1232 seccion_1.prioridad_2_a_10 = 12233 seccion_1.prioridad_10_a_100 = 30234 seccion_1.save(update_fields=['prioridad_hasta_2', 'prioridad_2_a_10', 'prioridad_10_a_100'])235 pv.prioridad = 35236 pv.save(update_fields=['prioridad'])237 [mesas_seccion_1] = crear_mesas([lugar_votacion_1], categorias, 100)238 # identifico todas las mesas239 for nro in range(100):240 identificar_mesa(mesas_seccion_1[nro], fiscal)241 # estado antes del cambio en las prioridades de la sección242 verificar_valores_scheduling_mesacat(mesas_seccion_1[0], pv, 1, 1, 35) 243 verificar_valores_scheduling_mesacat(mesas_seccion_1[0], gv, 1, 1, 100) 244 verificar_valores_scheduling_mesacat(mesas_seccion_1[1], pv, 2, 2, 70)245 verificar_valores_scheduling_mesacat(mesas_seccion_1[1], gv, 2, 2, 200)246 verificar_valores_scheduling_mesacat(mesas_seccion_1[2], pv, 3, 3, 1260)247 verificar_valores_scheduling_mesacat(mesas_seccion_1[2], gv, 3, 3, 3600)248 verificar_valores_scheduling_mesacat(mesas_seccion_1[9], pv, 10, 10, 4200)249 verificar_valores_scheduling_mesacat(mesas_seccion_1[9], gv, 10, 10, 12000)250 verificar_valores_scheduling_mesacat(mesas_seccion_1[10], pv, 11, 11, 11550)251 verificar_valores_scheduling_mesacat(mesas_seccion_1[10], gv, 11, 11, 33000)252 verificar_valores_scheduling_mesacat(mesas_seccion_1[40], pv, 41, 41, 43050)253 verificar_valores_scheduling_mesacat(mesas_seccion_1[40], gv, 41, 41, 123000)254 255 # vuelvo al default el rango 2% - 10%256 seccion_1.prioridad_2_a_10 = None257 seccion_1.save(update_fields=['prioridad_2_a_10'])258 # a ver como quedaron259 verificar_valores_scheduling_mesacat(mesas_seccion_1[0], pv, 1, 1, 35)260 verificar_valores_scheduling_mesacat(mesas_seccion_1[0], gv, 1, 1, 100)261 verificar_valores_scheduling_mesacat(mesas_seccion_1[1], pv, 2, 2, 70)262 verificar_valores_scheduling_mesacat(mesas_seccion_1[1], gv, 2, 2, 200)263 verificar_valores_scheduling_mesacat(mesas_seccion_1[2], pv, 3, 3, 2100) # está en el rango afectado por el cambio264 verificar_valores_scheduling_mesacat(mesas_seccion_1[2], gv, 3, 3, 6000) # está en el rango afectado por el cambio265 verificar_valores_scheduling_mesacat(mesas_seccion_1[9], pv, 10, 10, 7000) # está en el rango afectado por el cambio266 verificar_valores_scheduling_mesacat(mesas_seccion_1[9], gv, 10, 10, 20000) # está en el rango afectado por el cambio267 verificar_valores_scheduling_mesacat(mesas_seccion_1[10], pv, 11, 11, 11550)268 verificar_valores_scheduling_mesacat(mesas_seccion_1[10], gv, 11, 11, 33000)269 verificar_valores_scheduling_mesacat(mesas_seccion_1[40], pv, 41, 41, 43050)270 verificar_valores_scheduling_mesacat(mesas_seccion_1[40], gv, 41, 41, 123000)271def test_cambio_prioridades_asigno_cantidad_minima_mesas_maxima_prioridad(db, settings):272 """273 Verifico que si para una sección, se cambia únicamente la cantidad mÃnima de mesas 274 que deben considerarse para la máxima prioridad, 275 los coeficiente_para_orden_de_carga se actualizan en forma correcta276 """277 asignar_prioridades_standard(settings)278 settings.MIN_COINCIDENCIAS_IDENTIFICACION = 1279 fiscal = nuevo_fiscal()280 seccion_1, circuito_1, lugar_votacion_1 = crear_seccion("Barrio maritimo")281 pv = CategoriaFactory(nombre="PV")282 categorias = [pv]283 [mesas_seccion_1] = crear_mesas([lugar_votacion_1], categorias, 20)284 # identifico todas las mesas285 for nro in range(20):286 identificar_mesa(mesas_seccion_1[nro], fiscal)287 verificar_valores_scheduling_mesacat(mesas_seccion_1[0], pv, 1, 1, 200)288 verificar_valores_scheduling_mesacat(mesas_seccion_1[1], pv, 6, 2, 12000)289 verificar_valores_scheduling_mesacat(mesas_seccion_1[2], pv, 11, 3, 110000)290 verificar_valores_scheduling_mesacat(mesas_seccion_1[6], pv, 31, 7, 310000)291 verificar_valores_scheduling_mesacat(mesas_seccion_1[7], pv, 36, 8, 360000)292 verificar_valores_scheduling_mesacat(mesas_seccion_1[8], pv, 41, 9, 410000)293 verificar_valores_scheduling_mesacat(mesas_seccion_1[9], pv, 46, 10, 460000)294 verificar_valores_scheduling_mesacat(mesas_seccion_1[18], pv, 91, 19, 910000)295 # asigno una cantidad mÃnima de mesas para la máxima prioridad296 seccion_1.cantidad_minima_prioridad_hasta_2 = 8297 seccion_1.save(update_fields=['cantidad_minima_prioridad_hasta_2'])298 verificar_valores_scheduling_mesacat(mesas_seccion_1[0], pv, 1, 1, 200)299 verificar_valores_scheduling_mesacat(mesas_seccion_1[1], pv, 6, 2, 1200)300 verificar_valores_scheduling_mesacat(mesas_seccion_1[2], pv, 11, 3, 2200)301 verificar_valores_scheduling_mesacat(mesas_seccion_1[6], pv, 31, 7, 6200)302 verificar_valores_scheduling_mesacat(mesas_seccion_1[7], pv, 36, 8, 7200)303 verificar_valores_scheduling_mesacat(mesas_seccion_1[8], pv, 41, 9, 410000)304 verificar_valores_scheduling_mesacat(mesas_seccion_1[9], pv, 46, 10, 460000)...
analizador_solo_gramatica.py
Source:analizador_solo_gramatica.py
...43 """44 # Identificador obligatorio45 self.__verificar_identificador()46 # anotado obligatorio47 self.__verificar('anotado')48 # Verifica si trae un valor, una invocación o una expresión49 # matemática como la expresión, la invocación y el valor50 # pueden iniciar por un identificador se revisa el51 # siguiente componente para las validaciones52 53 tipos_de_variable = {'ENTERO', 'FLOTANTE', 'BOOLEANO',54 'TEXTO', 'IDENTIFICADOR'}55 # Caso Expresión Matemática56 if self.componente_actual.valor == '#':57 self.__analizar_expresion_matematica()58 # Caso Invocacion59 elif self.componente_actual.tipo == 'INVOCACION':60 self.__analizar_invocacion()61 # Caso Valor62 elif self.componente_actual.tipo in tipos_de_variable:63 self.__analizar_valor()64 # Un punto obligatorio65 self.__verificar('.')66 def __analizar_invocacion(self) -> None:67 """68 Invocación ::= jutsu Identificador(Parámetros)69 """70 self.__verificar_identificador()71 self.__verificar('(')72 self.__analizar_parametros()73 self.__verificar(')')74 def __analizar_funcion(self) -> None:75 """76 Función ::= POV Identificador(Parámetros) xD ConjuntoInstrucciones v:77 """78 # Verifica POV79 self.__verificar('POV')80 # Identificador obligatorio81 self.__verificar_identificador()82 # Verifica parametros83 self.__verificar('(')84 self.__analizar_parametros()85 self.__verificar(')')86 # Verifica corchetes87 self.__verificar('xD')88 # Analizar instruccion89 self.__analizar_conjunto_instrucciones()90 # Verifica corchetes91 self.__verificar('v:')92 def __analizar_principal(self) -> None:93 """94 Principal::= maracuya() xD ConjuntoInstrucciones v:95 """96 # Verifica que sea la principal97 self.__verificar('maracuya')98 self.__verificar('(')99 self.__verificar(')')100 # Verifica corchetes101 self.__verificar('xD')102 # Si es instruccion103 self.__analizar_conjunto_instrucciones()104 # Verifica corchetes105 self.__verificar('v:')106 def __analizar_parametros(self) -> None:107 """108 Parámetros::= Valor (, Valor)*109 """110 # Verifica el primer valor111 self.__analizar_valor()112 # Como puede traer varios parametros se revisa hasta que no hayan comas113 while(self.componente_actual.valor == ','):114 self.__verificar(',')115 self.__analizar_valor()116 def __verificar_identificador(self) -> None:117 """118 Verifica si el tipo del componente léxico actual es de tipo119 IDENTIFICADOR120 Identificador ::= [A-Za-z_][A-Za-z_0-9]+121 """122 # Se verifica el tipo de componente123 self.__verificar_tipo_componente('IDENTIFICADOR')124 def __analizar_instruccion(self) -> None:125 """126 Instrucciones ::= Asignación | Repetir |127 Condicional | Comentario | Retorno128 """129 # Se verifica que tipo de instrucción se está enviando para validarla130 if self.componente_actual.valor == 'whenCuando':131 self.__analizar_repetir()132 elif self.componente_actual.tipo == 'IDENTIFICADOR':133 self.__analizar_asignacion()134 elif self.componente_actual.valor == 'siuuu':135 self.__analizar_condicional()136 elif self.componente_actual.valor == 'messirve':137 self.__analizar_retorno()138 def __analizar_repetir(self) -> None:139 """140 Repetir ::= whenCuando xD ConjuntoInstrucciones but (ExpCondicional) v:141 """142 # sólo se verifica la estructura de repetición143 self.__verificar('whenCuando')144 self.__verificar('xD')145 self.__analizar_conjunto_instrucciones()146 self.__verificar('but')147 self.__verificar('(')148 self.__analizar_expresion_condicional()149 self.__verificar(')')150 self.__verificar('v:')151 def __analizar_condicional(self) -> None:152 """153 Condicional::= siuuu (ExpCondicional) xD ConjuntoInstrucciones v:154 (nimodo xD ConjuntoInstrucciones v:)?155 """156 # Se verifica la estructura condicional157 self.__verificar('siuuu')158 self.__verificar('(')159 self.__analizar_expresion_condicional()160 self.__verificar(')')161 self.__verificar('xD')162 self.__analizar_conjunto_instrucciones()163 self.__verificar('v:')164 # Como puede o no traer el else entonces lo validamos165 if self.componente_actual.valor == 'nimodo':166 self.__verificar('nimodo')167 self.__verificar('xD')168 self.__analizar_conjunto_instrucciones()169 self.__verificar('v:')170 def __analizar_conjunto_instrucciones(self) -> None:171 """172 ConjuntoInstrucciones ::= Instruccion+173 """174 # Valida la primera instrucción175 self.__analizar_instruccion()176 # Recorre todas las instrucciones dentro de una función177 # Las envÃa a verificar una por una178 instrucciones = {'whenCuando', 'siuuu', 'messirve'}179 while self.componente_actual.valor in instrucciones or\180 self.componente_actual.tipo == 'IDENTIFICADOR':181 self.__analizar_instruccion()182 def __analizar_expresion_condicional(self) -> None:183 """184 ExpCondicional ::= Comparación(OperadorLogico Comparación)?185 """186 # Verifica la comparación187 self.__analizar_comparacion()188 # Se valida si trae operador lógico y se manda a verificar189 if self.componente_actual.tipo == 'OPERADOR_LOGICO':190 self.__verificar_operador_logico()191 self.__analizar_comparacion()192 def __analizar_comparacion(self) -> None:193 """194 Comparación::= Valor Comporador Valor195 """196 # Se verifica la estructura de comparación197 self.__analizar_valor()198 self.__verificar_comparador()199 self.__analizar_valor()200 def __analizar_retorno(self) -> None:201 """202 Retorno: := messirve Valor?.203 """204 # Palabra clave obligatoria205 self.__verificar('messirve')206 tipos_de_variable = {'IDENTIFICADOR', 'ENTERO', 'FLOTANTE',207 'BOOLEANO', 'TEXTO'}208 if self.componente_actual.tipo in tipos_de_variable:209 self.__analizar_valor()210 # Punto obligatorio211 self.__verificar('.')212 def __analizar_valor(self) -> None:213 """214 Valor : := Literal | Identificador215 """216 # Se revisa si corresponde a un identificador o un literal217 if self.componente_actual.tipo == 'IDENTIFICADOR':218 self.__verificar_identificador()219 else:220 self.__analizar_literal()221 def __analizar_literal(self) -> None:222 """223 Literal ::= Texto|Entero|Flotante|Booleano224 """225 # Se verifica el tipo de literal y se manda al226 # verificar correspondiente227 if self.componente_actual.tipo == 'ENTERO':228 self.__verificar_entero()229 elif self.componente_actual.tipo == 'FLOTANTE':230 self.__verificar_flotante()231 elif self.componente_actual.tipo == 'BOOLEANO':232 self.__verificar_booleano()233 elif self.componente_actual.tipo == 'TEXTO':234 self.__verificar_texto()235 def __verificar_entero(self) -> None:236 """237 Entero::= -?[0-9]+238 """239 self.__verificar_tipo_componente('ENTERO')240 def __verificar_flotante(self) -> None:241 """242 Flotante::= -?[0-9]+;[0-9]+243 """244 self.__verificar_tipo_componente('FLOTANTE')245 def __verificar_booleano(self) -> None:246 """247 Booleano::= SIUA|NOUA248 """249 self.__verificar_tipo_componente('BOOLEANO')250 def __verificar_texto(self) -> None:251 """252 Texto ::= ã.*ã253 """254 self.__verificar_tipo_componente('TEXTO')255 def __verificar_tipo_componente(self, tipo_componente_esperado) -> None:256 # Error sintactico si no son de tipo equivalentes257 if self.componente_actual.tipo != tipo_componente_esperado:258 self.__error_verificacion_tipo(tipo_componente_esperado)259 self.__siguiente_componente()260 def __siguiente_componente(self) -> None:261 """262 Pasa al siguiente componente léxico de la lista263 """264 # Recorre los componentes hasta llegar a su cantidad máxima265 self.posicion_componente_actual += 1266 if self.posicion_componente_actual >= self.cantidad_componentes:267 return268 self.componente_actual =\269 self.componentes_lexicos[self.posicion_componente_actual]270 def __analizar_expresion_matematica(self) -> None:271 """272 ExpresionMatematica::= Valor (Operador Valor)*273 """274 # Se verifica el primer valor275 self.__analizar_valor()276 # Como pueden o no estar se validan mientras siga un operador277 while(self.componente_actual.tipo == 'OPERADOR'):278 self.__verificar_operador()279 self.__analizar_valor()280 def __verificar_operador(self) -> None:281 """282 Operador::= bobMar | bobStar | bobiDir | bobTiplicar283 """284 self.__verificar_tipo_componente('OPERADOR')285 def __verificar_operador_logico(self) -> None:286 """287 OperadorLogico::= aja | ayno288 """289 self.__verificar_tipo_componente('OPERADOR_LOGICO')290 def __verificar_comparador(self) -> None:291 """292 Comparador ::= chikito | tapotente | panapotente |293 panachikito | nolocrick | panas294 """295 self.__verificar_tipo_componente('COMPARADOR')296 def __verificar(self, texto_esperado: str) -> None:297 """298 Verifica si el texto del componente léxico actual corresponde con299 el esperado cómo argumento300 """301 # Error sintactico si no tienen el mismo contenido302 if self.componente_actual.valor != texto_esperado:303 self.__error_verificacion_texto(texto_esperado)304 self.__siguiente_componente()305 def __error_verificacion_texto(self, texto_esperado: str) -> NoReturn:306 """307 Levanta un error de sintaxis si no empareja un texto esperado308 con el texto del componenete actual309 """310 texto_encontrado = self.componente_actual.valor...
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!