def test_identificacion_create_view_post__desde_unidad_basica( fiscal_client, admin_user): mesa_1 = MesaFactory() attachment = AttachmentFactory() admin_user.fiscal.asignar_attachment(attachment) attachment.asignar_a_fiscal() data = { 'mesa': mesa_1.numero, 'circuito': mesa_1.circuito.numero, 'seccion': mesa_1.circuito.seccion.numero, 'distrito': mesa_1.circuito.seccion.distrito.id, } response = fiscal_client.post( reverse('asignar-mesa-ub', args=[attachment.id]), data) assert response.status_code == HTTPStatus.FOUND assert response.url == reverse('cargar-desde-ub', kwargs={'mesa_id': mesa_1.id}) # Refrescamos el attachment desde la base. attachment.refresh_from_db() assert attachment.identificaciones.count() == 1 assert attachment.status == Attachment.STATUS.identificada identificacion = attachment.identificaciones.first() assert attachment.identificacion_testigo == identificacion assert identificacion.status == Identificacion.STATUS.identificada assert identificacion.source == Identificacion.SOURCES.csv assert identificacion.mesa == mesa_1 # La identificación está consolidada, por lo tanto ya existe en la mesa assert mesa_1.attachments.exists()
def test_identificacion_create_view_get__desde_unidad_basica( fiscal_client, admin_user): a = AttachmentFactory() admin_user.fiscal.asignar_attachment(a) a.asignar_a_fiscal() response = fiscal_client.get(reverse('asignar-mesa-ub', args=[a.id])) assert response.status_code == HTTPStatus.OK foto_url = a.foto.thumbnail['960x'].url assert foto_url in response.content.decode('utf8')
def test_priorizadas_ordena_por_cant_asignaciones_realizadas(db, settings): a1 = AttachmentFactory() a2 = AttachmentFactory() a3 = AttachmentFactory() assert a1.id < a2.id assert a2.id < a3.id assert set(Attachment.objects.sin_identificar()) == {a1, a2, a3} for i in range(settings.MIN_COINCIDENCIAS_IDENTIFICACION): a1.asignar_a_fiscal() a2.asignar_a_fiscal() a3.asignar_a_fiscal() # Prima el orden por id. assert list( Attachment.objects.sin_identificar().priorizadas()) == [a1, a2, a3] # Ahora a2 es devuelto. for i in range(settings.MIN_COINCIDENCIAS_IDENTIFICACION): a2.desasignar_a_fiscal() assert list( Attachment.objects.sin_identificar().priorizadas()) == [a2, a1, a3] # a2 es asignado nuevamente. for i in range(settings.MIN_COINCIDENCIAS_IDENTIFICACION): a2.asignar_a_fiscal() # Si bien a3 y a2 tienen la misma cantidad de asignaciones # vigentes, a2 fue asignado más veces. a1 y a3 empatan, salvo por id. assert list( Attachment.objects.sin_identificar().priorizadas()) == [a1, a3, a2] assert a1.cant_fiscales_asignados == a3.cant_fiscales_asignados assert a3.cant_fiscales_asignados == a2.cant_fiscales_asignados assert a3.cant_asignaciones_realizadas < a2.cant_asignaciones_realizadas
def test_identificacion_create_view_post(fiscal_client, admin_user): m1 = MesaFactory() a = AttachmentFactory() admin_user.fiscal.asignar_attachment(a) a.asignar_a_fiscal() data = { 'mesa': m1.numero, 'circuito': m1.circuito.numero, 'seccion': m1.circuito.seccion.numero, 'distrito': m1.circuito.seccion.distrito.id, } response = fiscal_client.post(reverse('asignar-mesa', args=[a.id]), data) assert response.status_code == HTTPStatus.FOUND assert response.url == reverse('siguiente-accion') assert a.identificaciones.count() == 1 i = a.identificaciones.first() assert i.status == Identificacion.STATUS.identificada assert i.mesa == m1 assert i.fiscal == admin_user.fiscal # La identificación todavía no está consolidada. a.refresh_from_db() assert a.identificacion_testigo is None assert not m1.attachments.exists() assert a.cant_fiscales_asignados == 0