示例#1
0
    def test_elettorato_attivo_dimissione_anzianita_soddisfatta(self):

        x = Appartenenza(
            persona=self.p,
            sede=self.s,
            inizio=self.due_anni_e_mezo_fa,
            fine=self.un_anno_fa,
            terminazione=Appartenenza.DIMISSIONE,
        )
        x.save()

        self.a.inizio = self.sei_mesi_fa
        self.a.fine = None
        self.a.precedente = x
        self.a.save()

        self.assertFalse(
            self._elettorato_contiene(tipo="attivo", persona=self.p),
            "Elettorato attivo NON contiene volontari con doppia appartenenza valida (DIMISSIONE)"
        )

        x.inizio = self.un_anno_e_mezzo_fa
        x.save()

        self.assertFalse(
            self._elettorato_contiene(tipo="attivo", persona=self.p),
            "Elettorato attivo non contiene volontari con doppia appartenenza invalida (DIMISSIONE)"
        )

        self.a.precedente = None
        self.a.save()
        x.delete()
示例#2
0
    def test_elettorato_passivo_trasferimento_anzianita_soddisfatta(self):

        x = Appartenenza(
            persona=self.p,
            sede=self.s,
            inizio=self.due_anni_e_mezo_fa,
            fine=self.un_anno_fa,
            terminazione=Appartenenza.TRASFERIMENTO,
        )
        x.save()

        self.a.inizio = self.un_anno_fa
        self.a.fine = None
        self.a.precedente = x
        self.a.save()

        self.assertTrue(
            self._elettorato_contiene(tipo="passivo", persona=self.p),
            "Elettorato passivo contiene volontari con doppia appartenenza valida (trasf.)"
        )

        x.inizio = self.un_anno_e_mezzo_fa
        x.save()

        self.assertFalse(
            self._elettorato_contiene(tipo="passivo", persona=self.p),
            "Elettorato attivo non contiene volontari con doppia appartenenza invalida (trasf.)"
        )

        self.a.precedente = None
        self.a.save()
        x.delete()
示例#3
0
    def test_storia_volontario(self):
        presidente1 = crea_persona()
        presidente2 = crea_persona()

        persona = crea_persona()
        persona.save()

        persona, sede1, app1 = crea_persona_sede_appartenenza(presidente1)
        sede2 = crea_sede(presidente2)
        sede2.save()
        sede3 = crea_sede(presidente2)
        sede3.save()

        # Appena diventato volontario
        a = Appartenenza(
            persona=persona,
            sede=sede1,
            membro=Appartenenza.VOLONTARIO,
            inizio=poco_fa(),
            confermata=True
        )
        a.save()

        self.assertTrue(persona.volontario_da_meno_di_un_anno)

        # data vecchia nel passato
        a.inizio = "1980-12-10"
        a.save()
        self.assertFalse(persona.volontario_da_meno_di_un_anno)
        
        # trasferiscilo ad altro comitato

        modulo = ModuloCreazioneEstensione()
        est = modulo.save(commit=False)
        est.richiedente = persona
        est.persona = persona
        est.destinazione = sede2
        est.save()
        est.richiedi()
        aut = presidente1.autorizzazioni_in_attesa().first()
        modulo = est.autorizzazione_concedi_modulo()({
            "protocollo_numero": 31,
            "protocollo_data": datetime.date.today()
        })
        aut.concedi(presidente1, modulo=modulo)
        est.refresh_from_db()

        # il trasferimento non cambia l'anzianità
        self.assertFalse(persona.volontario_da_meno_di_un_anno)

        # impostiamo una data recente
        a.inizio = datetime.date.today()
        a.save()
        self.assertTrue(persona.volontario_da_meno_di_un_anno)

        # trasferimento fallito ad altro comitato
        modulo = ModuloCreazioneEstensione()
        est = modulo.save(commit=False)
        est.richiedente = persona
        est.persona = persona
        est.destinazione = sede3
        est.save()
        est.richiedi()
        aut = presidente1.autorizzazioni_in_attesa().first()
        modulo = est.autorizzazione_concedi_modulo()({
            "protocollo_numero": 32,
            "protocollo_data": datetime.date.today()
        })
        aut.nega(presidente1, modulo=modulo)
        est.refresh_from_db()

        # lo stato non è cambiato
        self.assertTrue(persona.volontario_da_meno_di_un_anno)

        # data vecchia nel passato
        a.inizio = "1980-12-10"
        a.save()
        self.assertFalse(persona.volontario_da_meno_di_un_anno)

        # un espulso non è più un volontario, quindi deve fallire
        a.inizio = datetime.date.today()
        a.save()
        persona.espelli()
        self.assertFalse(persona.volontario_da_meno_di_un_anno)

        # reintegriamo l'utente
        a = Aspirante(persona=persona)
        a.locazione = sede1.locazione
        a.save()

        # l'aspirante non è volontario
        self.assertFalse(persona.volontario_da_meno_di_un_anno)

        # promosso a volontario
        persona.da_aspirante_a_volontario(sede2)
        # è appena tornato volontario
        self.assertTrue(persona.volontario_da_meno_di_un_anno)

        # dimettiamolo
        for app in persona.appartenenze_attuali():
            d = Dimissione(
                persona=persona,
                sede=sede2,
                appartenenza=app
            )
            d.save()
            d.applica()
        self.assertFalse(persona.volontario_da_meno_di_un_anno)

        # reintegriamo l'utente
        a = Aspirante(persona=persona)
        a.locazione = sede1.locazione
        a.save()

        # l'aspirante non è volontario
        self.assertFalse(persona.volontario_da_meno_di_un_anno)

        # promosso a volontario
        persona.da_aspirante_a_volontario(sede2)
        # è appena tornato volontario
        self.assertTrue(persona.volontario_da_meno_di_un_anno)

        attuale = persona.appartenenze_attuali().get(membro=Appartenenza.VOLONTARIO)
        # data vecchia nel passato
        attuale.inizio = "1980-12-10"
        attuale.save()
        self.assertFalse(persona.volontario_da_meno_di_un_anno)