def test_autorizzazioni_automatiche_non_scadute(self): presidente = crea_persona() persona, sede, app = crea_persona_sede_appartenenza( presidente=presidente) ora = timezone.now() area, attivita = crea_area_attivita(sede) domani_inizio = ora + timedelta(days=24) domani_fine = ora + timedelta(days=180) t1 = crea_turno(attivita, inizio=domani_inizio, fine=domani_fine) partecipazione = crea_partecipazione(persona, t1) attivita.centrale_operativa = Attivita.CO_AUTO attivita.save() self.assertEqual(0, Autorizzazione.objects.count()) partecipazione.richiedi() self.assertEqual(0, len(mail.outbox)) self.assertEqual(1, Autorizzazione.objects.count()) autorizzazione = Autorizzazione.objects.first() Autorizzazione.gestisci_automatiche() self.assertEqual(0, len(mail.outbox)) self.assertFalse(partecipazione.automatica) Autorizzazione.gestisci_automatiche() self.assertEqual(0, len(mail.outbox)) self.assertFalse(partecipazione.automatica)
def test_autorizzazioni_automatiche_non_scadute(self): presidente = crea_persona() persona, sede, app = crea_persona_sede_appartenenza(presidente=presidente) ora = timezone.now() area, attivita = crea_area_attivita(sede) domani_inizio = ora + timedelta(days=24) domani_fine = ora + timedelta(days=180) t1 = crea_turno(attivita, inizio=domani_inizio, fine=domani_fine) partecipazione = crea_partecipazione(persona, t1) attivita.centrale_operativa = Attivita.CO_AUTO attivita.save() self.assertEqual(0, Autorizzazione.objects.count()) partecipazione.richiedi() self.assertEqual(0, len(mail.outbox)) self.assertEqual(1, Autorizzazione.objects.count()) autorizzazione = Autorizzazione.objects.first() Autorizzazione.gestisci_automatiche() self.assertEqual(0, len(mail.outbox)) self.assertFalse(partecipazione.automatica) Autorizzazione.gestisci_automatiche() self.assertEqual(0, len(mail.outbox)) self.assertFalse(partecipazione.automatica)
def test_campo_centrale_operativa_disabilitata(self): presidente = crea_persona() referente = crea_persona() volontario, sede, appartenenza = crea_persona_sede_appartenenza() delega = Delega( oggetto=sede, persona=presidente, tipo=PRESIDENTE, inizio="2005-11-15", ) delega.save() delega_2 = Delega( oggetto=sede, persona=referente, tipo=DELEGATO_CO, inizio="2005-11-15", ) delega_2.save() area, attivita = crea_area_attivita(sede=sede) inizio = timezone.now() + timedelta(hours=12) fine = inizio + timedelta(hours=2) turno = crea_turno(attivita, inizio=inizio, fine=fine) attivita.aggiungi_delegato(REFERENTE, volontario) attivita.aggiungi_delegato(REFERENTE, referente) # Crea le sessioni sessione_referente = self.sessione_utente(persona=referente) sessione_volontario = self.sessione_utente(persona=volontario) sessione_presidente = self.sessione_utente(persona=presidente) # Volontario: Apri la pagina dell'attivita' sessione_volontario.visit("%s%smodifica/" % (self.live_server_url, attivita.url)) self.assertIn( 'disabled', sessione_volontario.find_by_id('id_centrale_operativa') [0].outer_html) sessione_presidente.visit("%s%smodifica/" % (self.live_server_url, attivita.url)) self.assertNotIn( 'disabled', sessione_presidente.find_by_id('id_centrale_operativa') [0].outer_html) sessione_referente.visit("%s%smodifica/" % (self.live_server_url, attivita.url)) self.assertNotIn( 'disabled', sessione_referente.find_by_id('id_centrale_operativa') [0].outer_html)
def test_controllo_anni_attivita(self): from anagrafica.costanti import LIMITE_ETA, LIMITE_ANNI_ATTIVITA ora = now() data_limite = ora.today() data_sotto = data_limite.replace(year=data_limite.year - (LIMITE_ETA - 1)) data_sopra = data_limite.replace(year=data_limite.year - (LIMITE_ETA + 1)) data_limite = data_limite.replace(year=data_limite.year - LIMITE_ETA) sede = crea_sede() persona_sotto_limite = crea_persona() persona_sotto_limite.data_nascita = data_sotto persona_sotto_limite.save() crea_appartenenza(persona_sotto_limite, sede) persona_sopra_limite = crea_persona() persona_sopra_limite.data_nascita = data_sopra persona_sopra_limite.save() crea_appartenenza(persona_sopra_limite, sede) persona_al_limite = crea_persona() persona_al_limite.data_nascita = data_limite persona_al_limite.save() crea_appartenenza(persona_al_limite, sede) area, attivita = crea_area_attivita(sede) for anni in range(0, LIMITE_ANNI_ATTIVITA + 3): inizio = ora.replace(year=ora.year - (anni - 1)) fine = ora.replace(year=ora.year - (anni - 1)) + datetime.timedelta(hours=1) t1 = crea_turno(attivita, inizio=inizio, fine=fine) if anni < LIMITE_ANNI_ATTIVITA: for persona in (persona_sotto_limite, persona_sopra_limite, persona_al_limite): crea_partecipazione(persona, t1) elif anni == LIMITE_ANNI_ATTIVITA: for persona in (persona_sopra_limite, persona_al_limite): crea_partecipazione(persona, t1) else: crea_partecipazione(persona_sopra_limite, t1) lista = _calcola_anni_attivita(Persona.objects.all()) self.assertEqual(set(lista), {persona_sotto_limite}) lista = _calcola_anni_attivita(Persona.objects.all(), meno=False) self.assertEqual(set(lista), {persona_al_limite, persona_sopra_limite})
def test_campo_centrale_operativa_disabilitata(self): presidente = crea_persona() referente = crea_persona() volontario, sede, appartenenza = crea_persona_sede_appartenenza() delega = Delega( oggetto=sede, persona=presidente, tipo=PRESIDENTE, inizio="2005-11-15", ) delega.save() delega_2 = Delega( oggetto=sede, persona=referente, tipo=DELEGATO_CO, inizio="2005-11-15", ) delega_2.save() area, attivita = crea_area_attivita(sede=sede) inizio = timezone.now() + timedelta(hours=12) fine = inizio + timedelta(hours=2) turno = crea_turno(attivita, inizio=inizio, fine=fine) attivita.aggiungi_delegato(REFERENTE, volontario) attivita.aggiungi_delegato(REFERENTE, referente) # Crea le sessioni sessione_referente = self.sessione_utente(persona=referente) sessione_volontario = self.sessione_utente(persona=volontario) sessione_presidente = self.sessione_utente(persona=presidente) # Volontario: Apri la pagina dell'attivita' sessione_volontario.visit("%s%smodifica/" % (self.live_server_url, attivita.url)) self.assertIn('disabled', sessione_volontario.find_by_id('id_centrale_operativa')[0].outer_html) sessione_presidente.visit("%s%smodifica/" % (self.live_server_url, attivita.url)) self.assertNotIn('disabled', sessione_presidente.find_by_id('id_centrale_operativa')[0].outer_html) sessione_referente.visit("%s%smodifica/" % (self.live_server_url, attivita.url)) self.assertNotIn('disabled', sessione_referente.find_by_id('id_centrale_operativa')[0].outer_html)
def test_autorizzazioni_automatiche_scadute(self): presidente = crea_persona() persona, sede, app = crea_persona_sede_appartenenza( presidente=presidente) persona.email_contatto = email_fittizzia() persona.save() ora = timezone.now() area, attivita = crea_area_attivita(sede) domani_inizio = ora + timedelta(days=24) domani_fine = ora + timedelta(days=180) t1 = crea_turno(attivita, inizio=domani_inizio, fine=domani_fine) partecipazione = crea_partecipazione(persona, t1) attivita.centrale_operativa = Attivita.CO_AUTO attivita.save() self.assertEqual(0, Autorizzazione.objects.count()) partecipazione.richiedi() self.assertNotIn(partecipazione, Partecipazione.con_esito_ok()) self.assertEqual(0, len(mail.outbox)) self.assertEqual(1, Autorizzazione.objects.count()) autorizzazione = Autorizzazione.objects.first() self.assertNotEqual(autorizzazione.scadenza, None) autorizzazione.scadenza = timezone.now() - timedelta(days=10) autorizzazione.save() self.assertFalse(autorizzazione.concessa) Autorizzazione.gestisci_automatiche() self.assertEqual(1, len(mail.outbox)) messaggio = mail.outbox[0] self.assertTrue( messaggio.subject.find( 'Richiesta di partecipazione attività RESPINTA') > -1) self.assertFalse( messaggio.subject.find( 'Richiesta di partecipazione attività APPROVATA') > -1) self.assertTrue( messaggio.body.find( 'una tua richiesta è rimasta in attesa per 30 giorni e come da policy' ) == -1) self.assertTrue(autorizzazione.oggetto.automatica) Autorizzazione.gestisci_automatiche() self.assertEqual(1, len(mail.outbox)) self.assertEqual(autorizzazione.concessa, None) self.assertIn(partecipazione, Partecipazione.con_esito_no())
def test_autorizzazioni_automatiche_scadute(self): presidente = crea_persona() persona, sede, app = crea_persona_sede_appartenenza(presidente=presidente) persona.email_contatto = email_fittizzia() persona.save() ora = timezone.now() area, attivita = crea_area_attivita(sede) domani_inizio = ora + timedelta(days=24) domani_fine = ora + timedelta(days=180) t1 = crea_turno(attivita, inizio=domani_inizio, fine=domani_fine) partecipazione = crea_partecipazione(persona, t1) attivita.centrale_operativa = Attivita.CO_AUTO attivita.save() self.assertEqual(0, Autorizzazione.objects.count()) partecipazione.richiedi() self.assertNotIn(partecipazione, Partecipazione.con_esito_ok()) self.assertEqual(0, len(mail.outbox)) self.assertEqual(1, Autorizzazione.objects.count()) autorizzazione = Autorizzazione.objects.first() self.assertNotEqual(autorizzazione.scadenza, None) autorizzazione.scadenza = timezone.now() - timedelta(days=10) autorizzazione.save() self.assertFalse(autorizzazione.concessa) Autorizzazione.gestisci_automatiche() self.assertEqual(1, len(mail.outbox)) messaggio = mail.outbox[0] self.assertTrue(messaggio.subject.find('Richiesta di partecipazione attività RESPINTA') > -1) self.assertFalse(messaggio.subject.find('Richiesta di partecipazione attività APPROVATA') > -1) self.assertTrue(messaggio.body.find('una tua richiesta è rimasta in attesa per 30 giorni e come da policy') == -1) self.assertTrue(autorizzazione.oggetto.automatica) Autorizzazione.gestisci_automatiche() self.assertEqual(1, len(mail.outbox)) self.assertEqual(autorizzazione.concessa, None) self.assertIn(partecipazione, Partecipazione.con_esito_no())
def test_richiesta_partecipazione(self): referente = crea_persona() volontario, sede, appartenenza = crea_persona_sede_appartenenza() area, attivita = crea_area_attivita(sede=sede) inizio = timezone.now() + timedelta(hours=12) fine = inizio + timedelta(hours=2) turno = crea_turno(attivita, inizio=inizio, fine=fine) attivita.aggiungi_delegato(REFERENTE, referente) # Crea le sessioni sessione_referente = self.sessione_utente(persona=referente) sessione_volontario = self.sessione_utente(persona=volontario) # Volontario: Apri la pagina dell'attivita' sessione_volontario.visit("%s%s" % (self.live_server_url, attivita.url)) # Volontario: Apri pagina turni sessione_volontario.click_link_by_partial_text("Turni") # Volontario: Chiedi di partecipare sessione_volontario.click_link_by_partial_text("Partecipa") self.assertTrue(sessione_volontario.is_text_present("Richiesta inoltrata"), msg="La richiesta e stata inoltrata") # Volontario: Apri la pagina dell'attivita', pagina turni sessione_volontario.visit("%s%s" % (self.live_server_url, attivita.url)) sessione_volontario.click_link_by_partial_text("Turni") self.assertTrue(sessione_volontario.is_text_present("Hai chiesto di partecipare"), msg="Utente ha feedback sull'aver chiesto di partecipare") # Volontario: Vai allo storico sessione_volontario.click_link_by_partial_text("Miei turni") self.assertTrue(sessione_volontario.is_text_present("In attesa"), msg="Storico mostra stato in attesa della richiesta") # Referente: Trova la richiesta sessione_referente.click_link_by_partial_text("Richieste") self.assertTrue(sessione_referente.is_text_present(volontario.nome_completo), msg="La richiesta mostra il nome del volontario") self.assertTrue(sessione_referente.is_text_present(turno.nome), msg="La richiesta mostra il nome del turno") # Referente: Trova la richiesta sessione_referente.click_link_by_partial_text("Conferma") # Volontario: Vai allo storico sessione_volontario.click_link_by_partial_text("Miei turni") self.assertTrue(sessione_volontario.is_text_present("Approvata"), msg="La richiesta risulta ora approvata") # Volontario: Vai al turno sessione_volontario.click_link_by_partial_text(turno.nome) self.assertTrue(sessione_volontario.is_text_present("Partecipazione confermata"), msg="La partecipazione risulta nel turno")
def test_richiesta_partecipazione(self): referente = crea_persona() volontario, sede, appartenenza = crea_persona_sede_appartenenza() area, attivita = crea_area_attivita(sede=sede) inizio = timezone.now() + timedelta(hours=12) fine = inizio + timedelta(hours=2) turno = crea_turno(attivita, inizio=inizio, fine=fine) attivita.aggiungi_delegato(REFERENTE, referente) # Crea le sessioni sessione_referente = self.sessione_utente(persona=referente) sessione_volontario = self.sessione_utente(persona=volontario) # Volontario: Apri la pagina dell'attivita' sessione_volontario.visit("%s%s" % (self.live_server_url, attivita.url)) # Volontario: Apri pagina turni sessione_volontario.click_link_by_partial_text("Turni") # Volontario: Chiedi di partecipare sessione_volontario.click_link_by_partial_text("Partecipa") self.assertTrue( sessione_volontario.is_text_present("Richiesta inoltrata"), msg="La richiesta e stata inoltrata") # Volontario: Apri la pagina dell'attivita', pagina turni sessione_volontario.visit("%s%s" % (self.live_server_url, attivita.url)) sessione_volontario.click_link_by_partial_text("Turni") self.assertTrue( sessione_volontario.is_text_present("Hai chiesto di partecipare"), msg="Utente ha feedback sull'aver chiesto di partecipare") # Volontario: Vai allo storico sessione_volontario.click_link_by_partial_text("Miei turni") self.assertTrue(sessione_volontario.is_text_present("In attesa"), msg="Storico mostra stato in attesa della richiesta") # Referente: Trova la richiesta sessione_referente.click_link_by_partial_text("Richieste") self.assertTrue(sessione_referente.is_text_present( volontario.nome_completo), msg="La richiesta mostra il nome del volontario") self.assertTrue(sessione_referente.is_text_present(turno.nome), msg="La richiesta mostra il nome del turno") # Referente: Trova la richiesta sessione_referente.click_link_by_partial_text("Conferma") # Volontario: Vai allo storico sessione_volontario.click_link_by_partial_text("Miei turni") self.assertTrue(sessione_volontario.is_text_present("Approvata"), msg="La richiesta risulta ora approvata") # Volontario: Vai al turno sessione_volontario.click_link_by_partial_text(turno.nome) self.assertTrue( sessione_volontario.is_text_present("Partecipazione confermata"), msg="La partecipazione risulta nel turno")
def test_poteri_temporanei(self): presidente = crea_persona() persona, sede, app = crea_persona_sede_appartenenza(presidente=presidente) ora = timezone.now() area, attivita = crea_area_attivita(sede) self.assertFalse( persona.oggetti_permesso(GESTIONE_CENTRALE_OPERATIVA_SEDE).exists(), "La persona non ha di persé i permessi di gestione della CO" ) self.assertTrue( presidente.oggetti_permesso(GESTIONE_CENTRALE_OPERATIVA_SEDE).first() == sede, "Il presidente ha i permessi di gestione della CO", ) domani_inizio = ora + timedelta(hours=24) domani_fine = ora + timedelta(hours=25) t1 = crea_turno(attivita, inizio=domani_inizio, fine=domani_fine) partecipazione = crea_partecipazione(persona, t1) self.assertFalse( persona.oggetti_permesso(GESTIONE_CENTRALE_OPERATIVA_SEDE).exists(), "La persona non ha ancora i permessi di gestione della CO" ) attivita.centrale_operativa = Attivita.CO_AUTO attivita.save() self.assertFalse( persona.oggetti_permesso(GESTIONE_CENTRALE_OPERATIVA_SEDE).exists(), "La persona non ha ancora i permessi di gestione della CO" ) t1.inizio = ora t1.fine = ora + timedelta(hours=1) t1.save() self.assertTrue( persona.oggetti_permesso(GESTIONE_CENTRALE_OPERATIVA_SEDE).first() == sede, "La persona può ora gestire la CO per la Sede" ) self.assertTrue( persona.oggetti_permesso(GESTIONE_CENTRALE_OPERATIVA_SEDE).count() == 1, "La persona può ora gestire la CO per la Sede solamente (non sotto unità)" ) # Provo che il margine funzioni margine = Attivita.MINUTI_CENTRALE_OPERATIVA - 1 t1.inizio = ora + timedelta(minutes=margine) t1.fine = ora + timedelta(minutes=2*margine) t1.save() self.assertTrue( persona.oggetti_permesso(GESTIONE_CENTRALE_OPERATIVA_SEDE).exists(), "La persona può gestire la CO con un margine di %d minuti in anticipo" % margine, ) t1.inizio = ora - timedelta(hours=24) t1.fine = ora - timedelta(minutes=margine) t1.save() self.assertTrue( persona.oggetti_permesso(GESTIONE_CENTRALE_OPERATIVA_SEDE).exists(), "La persona può gestire la CO con un margine di %d minuti dopo la fine" % margine, ) t1.inizio = ora - timedelta(hours=24) t1.fine = ora - timedelta(minutes=margine+2) t1.save() self.assertFalse( persona.oggetti_permesso(GESTIONE_CENTRALE_OPERATIVA_SEDE).exists(), "La persona non puo gestire la CO se è troppo tardi", ) # Se la partecipazione viene richiesta... partecipazione.richiedi() self.assertFalse( persona.oggetti_permesso(GESTIONE_CENTRALE_OPERATIVA_SEDE).exists(), "La persona non può gestire la CO perché la richiesta non è stata processata" )
def test_centrale_operativa_permessi_attivita(self): delegato = crea_persona() volontario, sede, appartenenza = crea_persona_sede_appartenenza() sede.aggiungi_delegato(DELEGATO_CO, delegato) area, attivita = crea_area_attivita(sede, centrale_operativa=None) turno = crea_turno(attivita) crea_partecipazione(volontario, turno) sessione_delegato = self.sessione_utente(persona=delegato) sessione_volontario = self.sessione_utente(persona=volontario) self.assertFalse( sessione_volontario.is_text_present("CO"), "La centrale operativa non e' disponibile al volontario" ) self.assertTrue( sessione_delegato.is_text_present("CO"), "La centrale operativa e' disponibile al delegato" ) # In modalita' automatica, il volontario e' abilitato immediatamente attivita.centrale_operativa = Attivita.CO_AUTO attivita.save() sessione_volontario.visit("%s/utente/" % self.live_server_url) self.assertTrue( sessione_volontario.is_text_present("CO"), "La centrale operativa e' ora disponibile al volontario" ) sessione_volontario.click_link_by_partial_text("CO") sessione_volontario.click_link_by_partial_text("Turni") sessione_volontario.click_link_by_partial_text("Monta") self.assertTrue( sessione_volontario.is_text_present(attivita.nome), "Il volontario vede propria attivita in CO" ) # In modalita' manuale... attivita.centrale_operativa = Attivita.CO_MANUALE attivita.save() sessione_volontario.click_link_by_partial_text("Smonta") self.assertTrue( sessione_volontario.is_text_present("Accesso Negato"), "Il volontario non può più montare o smontare" ) sessione_delegato.click_link_by_partial_text("CO") sessione_delegato.click_link_by_partial_text("Poteri") self.assertTrue( sessione_delegato.is_text_present(volontario.nome), "Il delegato vede la persona in elenco" ) sessione_delegato.click_link_by_partial_text("Assegna") self.assertTrue( sessione_delegato.is_text_present("Ritira"), "Il delegato ha correttamente abilitato i poteri" ) sessione_volontario.click_link_by_partial_text("Torna") sessione_volontario.click_link_by_partial_text("CO") sessione_volontario.click_link_by_partial_text("Turni") sessione_volontario.click_link_by_partial_text("Smonta") self.assertTrue( sessione_volontario.is_text_present(volontario.nome), "Il volontario ha il suo nome in elenco" )
def test_poteri_temporanei(self): presidente = crea_persona() persona, sede, app = crea_persona_sede_appartenenza( presidente=presidente) ora = timezone.now() area, attivita = crea_area_attivita(sede) self.assertFalse( persona.oggetti_permesso( GESTIONE_CENTRALE_OPERATIVA_SEDE).exists(), "La persona non ha di persé i permessi di gestione della CO") self.assertTrue( presidente.oggetti_permesso( GESTIONE_CENTRALE_OPERATIVA_SEDE).first() == sede, "Il presidente ha i permessi di gestione della CO", ) domani_inizio = ora + timedelta(hours=24) domani_fine = ora + timedelta(hours=25) t1 = crea_turno(attivita, inizio=domani_inizio, fine=domani_fine) partecipazione = crea_partecipazione(persona, t1) self.assertFalse( persona.oggetti_permesso( GESTIONE_CENTRALE_OPERATIVA_SEDE).exists(), "La persona non ha ancora i permessi di gestione della CO") attivita.centrale_operativa = Attivita.CO_AUTO attivita.save() self.assertFalse( persona.oggetti_permesso( GESTIONE_CENTRALE_OPERATIVA_SEDE).exists(), "La persona non ha ancora i permessi di gestione della CO") t1.inizio = ora t1.fine = ora + timedelta(hours=1) t1.save() self.assertTrue( persona.oggetti_permesso(GESTIONE_CENTRALE_OPERATIVA_SEDE).first() == sede, "La persona può ora gestire la CO per la Sede") self.assertTrue( persona.oggetti_permesso( GESTIONE_CENTRALE_OPERATIVA_SEDE).count() == 1, "La persona può ora gestire la CO per la Sede solamente (non sotto unità)" ) # Provo che il margine funzioni margine = Attivita.MINUTI_CENTRALE_OPERATIVA - 1 t1.inizio = ora + timedelta(minutes=margine) t1.fine = ora + timedelta(minutes=2 * margine) t1.save() self.assertTrue( persona.oggetti_permesso( GESTIONE_CENTRALE_OPERATIVA_SEDE).exists(), "La persona può gestire la CO con un margine di %d minuti in anticipo" % margine, ) t1.inizio = ora - timedelta(hours=24) t1.fine = ora - timedelta(minutes=margine) t1.save() self.assertTrue( persona.oggetti_permesso( GESTIONE_CENTRALE_OPERATIVA_SEDE).exists(), "La persona può gestire la CO con un margine di %d minuti dopo la fine" % margine, ) t1.inizio = ora - timedelta(hours=24) t1.fine = ora - timedelta(minutes=margine + 2) t1.save() self.assertFalse( persona.oggetti_permesso( GESTIONE_CENTRALE_OPERATIVA_SEDE).exists(), "La persona non puo gestire la CO se è troppo tardi", ) # Se la partecipazione viene richiesta... partecipazione.richiedi() self.assertFalse( persona.oggetti_permesso( GESTIONE_CENTRALE_OPERATIVA_SEDE).exists(), "La persona non può gestire la CO perché la richiesta non è stata processata" )
def test_centrale_operativa_permessi_attivita(self): delegato = crea_persona() volontario, sede, appartenenza = crea_persona_sede_appartenenza() sede.aggiungi_delegato(DELEGATO_CO, delegato) area, attivita = crea_area_attivita(sede, centrale_operativa=None) turno = crea_turno(attivita) crea_partecipazione(volontario, turno) sessione_delegato = self.sessione_utente(persona=delegato) sessione_volontario = self.sessione_utente(persona=volontario) self.assertFalse( sessione_volontario.is_text_present("CO"), "La centrale operativa non e' disponibile al volontario") self.assertTrue(sessione_delegato.is_text_present("CO"), "La centrale operativa e' disponibile al delegato") # In modalita' automatica, il volontario e' abilitato immediatamente attivita.centrale_operativa = Attivita.CO_AUTO attivita.save() sessione_volontario.visit("%s/utente/" % self.live_server_url) self.assertTrue( sessione_volontario.is_text_present("CO"), "La centrale operativa e' ora disponibile al volontario") sessione_volontario.click_link_by_partial_text("CO") sessione_volontario.click_link_by_partial_text("Turni") sessione_volontario.click_link_by_partial_text("Monta") self.assertTrue(sessione_volontario.is_text_present(attivita.nome), "Il volontario vede propria attivita in CO") # In modalita' manuale... attivita.centrale_operativa = Attivita.CO_MANUALE attivita.save() sessione_volontario.click_link_by_partial_text("Smonta") self.assertTrue(sessione_volontario.is_text_present("Accesso Negato"), "Il volontario non può più montare o smontare") sessione_delegato.click_link_by_partial_text("CO") sessione_delegato.click_link_by_partial_text("Poteri") self.assertTrue(sessione_delegato.is_text_present(volontario.nome), "Il delegato vede la persona in elenco") sessione_delegato.click_link_by_partial_text("Assegna") self.assertTrue(sessione_delegato.is_text_present("Ritira"), "Il delegato ha correttamente abilitato i poteri") sessione_volontario.click_link_by_partial_text("Torna") sessione_volontario.click_link_by_partial_text("CO") sessione_volontario.click_link_by_partial_text("Turni") sessione_volontario.click_link_by_partial_text("Smonta") self.assertTrue(sessione_volontario.is_text_present(volontario.nome), "Il volontario ha il suo nome in elenco")