def crea_persona(): p = Persona( nome=names.get_first_name(), cognome=names.get_last_name(), codice_fiscale=codice_fiscale(), data_nascita="1994-2-5" ) p.save() return p
def import_import_volontari(risultato): i = 0 for p in risultato: if _ha_errore(p): continue dati = _ottieni_dati(p) dati_persona = { x: y for x, y in dati.items() if x in [ "nome", "cognome", "codice_fiscale", "data_nascita", "comune_nascita", "provincia_nascita", "stato_nascita", "stato_residenza", "cap_residenza", "indirizzo_residenza", "comune_residenza", "email_contatto" ] } try: persona = Persona.objects.get( codice_fiscale__iexact=dati_persona['codice_fiscale']) except Persona.DoesNotExist: persona = Persona(**dati_persona) persona.save() if dati['telefono']: persona.aggiungi_numero_telefono(dati['telefono'], servizio=False) if dati['telefono_servizio']: persona.aggiungi_numero_telefono(dati['telefono_servizio'], servizio=True) for app in persona.appartenenze_attuali(): app.fine = poco_fa() app.save() # Cancella aspirante associato Aspirante.objects.filter(persona=persona).delete() app = Appartenenza( persona=persona, sede=dati['sede'], inizio=dati['data_ingresso'], membro=Appartenenza.VOLONTARIO, ) app.save() if dati['email'] and not Utenza.objects.filter( persona=persona).exists(): # Non ha utenza if not Utenza.objects.filter(email__iexact=dati['email']): # Non esiste, prova a creare u = Utenza(persona=persona, email=dati['email']) u.save() u.genera_credenziali() i += 1 return i
def test_zip(self): p = Persona( nome="Mario", cognome="Rossi", codice_fiscale="FRSSAKJSIKAJD2", data_nascita="1994-2-5" ) p.save() z = Zip(oggetto=p) # Crea file 1 f1 = NamedTemporaryFile(delete=False, mode='wt') f1.write(self.CONTENUTO_1) f1.close() # Crea file 2 f2 = NamedTemporaryFile(delete=False, mode='wt') f2.write(self.CONTENUTO_2) f2.close() # Genera ZIP file z.aggiungi_file(f1.name, self.NOME_1) z.aggiungi_file(f2.name, self.NOME_2) z.comprimi_e_salva(nome='TestZip.zip') with ZipFile(z.file.path, 'r') as zip: self.assertIsNone( zip.testzip(), msg="Il file Zip non e' corrotto" ) r1 = zip.open(self.NOME_1) self.assertTrue( r1.read().decode() == self.CONTENUTO_1, msg="Il contenuto del primo file coincide" ) r2 = zip.open(self.NOME_2) self.assertTrue( r2.read().decode() == self.CONTENUTO_2, msg="Il contenuto del secondo file coincide" ) zip.close() self.assertTrue( p.allegati.all(), msg="Allegato associato correttamente alla persona" )
def test_normalizza_nome(self): nomi = { 'gIoVanni': 'Giovanni', "D'AMATO": "D'Amato", "'apostrofo": "'Apostrofo", "franÇoise": "Françoise", "günther": "Günther", } field_stub = TitleCharField() field_stub.attname = 'nome' persona = Persona() persona.nome = None self.assertEqual(field_stub.pre_save(persona, False), None) persona.nome = 1 self.assertEqual(field_stub.pre_save(persona, False), 1) persona.nome = '' self.assertEqual(field_stub.pre_save(persona, False), '') persona.nome = 'testo minuscolo' self.assertEqual(field_stub.pre_save(persona, False), 'Testo Minuscolo') persona.nome = False self.assertEqual(field_stub.pre_save(persona, False), False) for nome, atteso in nomi.items(): self.assertEqual(normalizza_nome(nome), atteso) persona.nome = nome self.assertEqual(field_stub.pre_save(persona, False), atteso)
def import_import_volontari(risultato): i = 0 for p in risultato: if _ha_errore(p): continue dati = _ottieni_dati(p) dati_persona = {x: y for x, y in dati.items() if x in [ "nome", "cognome", "codice_fiscale", "data_nascita", "comune_nascita", "provincia_nascita", "stato_nascita", "stato_residenza", "cap_residenza", "indirizzo_residenza", "comune_residenza", "email_contatto" ]} try: persona = Persona.objects.get(codice_fiscale__iexact=dati_persona['codice_fiscale']) except Persona.DoesNotExist: persona = Persona(**dati_persona) persona.save() if dati['telefono']: persona.aggiungi_numero_telefono(dati['telefono'], servizio=False) if dati['telefono_servizio']: persona.aggiungi_numero_telefono(dati['telefono_servizio'], servizio=True) for app in persona.appartenenze_attuali(): app.fine = poco_fa() app.save() # Cancella aspirante associato Aspirante.objects.filter(persona=persona).delete() app = Appartenenza( persona=persona, sede=dati['sede'], inizio=dati['data_ingresso'], membro=Appartenenza.VOLONTARIO, ) app.save() if dati['email'] and not Utenza.objects.filter(persona=persona).exists(): # Non ha utenza if not Utenza.objects.filter(email__iexact=dati['email']): # Non esiste, prova a creare u = Utenza(persona=persona, email=dati['email']) u.save() u.genera_credenziali() i += 1 return i
def test_permessi_attivita(self): fiumefreddo = Sede( nome="Comitato Locale di Fiumefreddo di Sicilia", tipo=Sede.COMITATO, estensione=LOCALE, ) fiumefreddo.save() mascali = Sede( nome="Comitato Locale di Mascali", tipo=Sede.COMITATO, estensione=LOCALE, ) mascali.save() area = Area( nome="6", obiettivo=6, sede=fiumefreddo, ) area.save() a = Attivita( stato=Attivita.VISIBILE, nome="Att 1", apertura=Attivita.APERTA, area=area, descrizione="1", sede=mascali, ) a.save() p = Persona( nome="Mario", cognome="Rossi", codice_fiscale="FRSSAKJNOKAJMI", data_nascita="1994-2-5" ) p.save() app = Appartenenza( persona=p, sede=fiumefreddo, membro=Appartenenza.VOLONTARIO, inizio="1980-12-10", ) app.save() t = Turno( attivita=a, prenotazione=datetime.datetime(2015, 11, 10), inizio=datetime.datetime(2015, 11, 10), fine=datetime.datetime(2015, 11, 30), minimo=1, massimo=6, ) t.save() delega = Delega( oggetto=a, persona=p, tipo=REFERENTE, inizio="2015-11-15", ) delega.save() self.assertTrue( p.calendario_turni(datetime.date(2015, 11, 1), datetime.date(2015, 11, 30)).filter(pk=t.pk).exists(), msg="Il turno viene trovato nel calendario - attivita' creata dalla sede del volontario" )
def test_attivita_estesa(self): sicilia = Sede( nome="Comitato Regionale di Sicilia", tipo=Sede.COMITATO, estensione=LOCALE, ) sicilia.save() fiumefreddo = Sede( nome="Comitato Locale di Fiumefreddo di Sicilia", tipo=Sede.COMITATO, estensione=LOCALE, genitore=sicilia, ) fiumefreddo.save() mascali = Sede( nome="Comitato Locale di Mascali", tipo=Sede.COMITATO, estensione=LOCALE, genitore=sicilia, ) mascali.save() calabria = Sede( nome="Comitato Regionale di Calabria", tipo=Sede.COMITATO, estensione=LOCALE, ) calabria.save() area = Area( nome="6", obiettivo=6, sede=sicilia, ) area.save() a = Attivita( stato=Attivita.VISIBILE, nome="Att 1", apertura=Attivita.APERTA, area=area, descrizione="1", sede=sicilia, estensione=sicilia, ) a.save() a1 = Attivita( stato=Attivita.VISIBILE, nome="Att 1", apertura=Attivita.APERTA, area=area, descrizione="1", sede=fiumefreddo, estensione=sicilia, ) a1.save() t = Turno( attivita=a, prenotazione=datetime.datetime(2015, 11, 10), inizio=datetime.datetime(2015, 11, 10), fine=datetime.datetime(2015, 11, 30), minimo=1, massimo=6, ) t.save() t1 = Turno( attivita=a, prenotazione=datetime.datetime(2015, 11, 10), inizio=datetime.datetime(2015, 10, 10), fine=datetime.datetime(2015, 10, 30) ) t1.save() t2 = Turno( attivita=a1, prenotazione=datetime.datetime(2015, 11, 10), inizio=datetime.datetime(2015, 11, 10), fine=datetime.datetime(2015, 11, 30) ) t2.save() p = Persona( nome="Mario", cognome="Rossi", codice_fiscale="FRSSAKJSIKAJDO", data_nascita="1994-2-5" ) p.save() p1 = Persona( nome="Mario", cognome="Rossi", codice_fiscale="FRSSAKJSIRAJDO", data_nascita="1994-2-5" ) p1.save() p2 = Persona( nome="Mario", cognome="Rossi", codice_fiscale="FRSSAKJNOKAJDO", data_nascita="1994-2-5" ) p2.save() p3 = Persona( nome="Mario", cognome="Rossi", codice_fiscale="FRSSAKJNOKAJMI", data_nascita="1994-2-5" ) p3.save() app = Appartenenza( persona=p, sede=sicilia, membro=Appartenenza.VOLONTARIO, inizio="1980-12-10", ) app.save() app1 = Appartenenza( persona=p1, sede=fiumefreddo, membro=Appartenenza.VOLONTARIO, inizio="1980-12-10", ) app1.save() app2 = Appartenenza( persona=p2, sede=mascali, membro=Appartenenza.VOLONTARIO, inizio="1980-12-10", ) app2.save() app3 = Appartenenza( persona=p3, sede=calabria, membro=Appartenenza.VOLONTARIO, inizio="1980-12-10", ) app3.save() self.assertTrue( p2.calendario_turni(datetime.date(2015, 11, 1), datetime.date(2015, 11, 30)).filter(pk=t2.pk).exists(), msg="Il turno viene trovato nel calendario - attivita' estesa al volontario" ) self.assertFalse( p3.calendario_turni(datetime.date(2015, 11, 1), datetime.date(2015, 11, 30)).filter(pk=t2.pk).exists(), msg="Il turno non viene trovato nel calendario - attivita' estesa al volontario" )
def test_permessi_attivita(self): fiumefreddo = Sede( nome="Comitato Locale di Fiumefreddo di Sicilia", tipo=Sede.COMITATO, estensione=LOCALE, ) fiumefreddo.save() mascali = Sede( nome="Comitato Locale di Mascali", tipo=Sede.COMITATO, estensione=LOCALE, ) mascali.save() area = Area( nome="6", obiettivo=6, sede=fiumefreddo, ) area.save() a = Attivita( stato=Attivita.VISIBILE, nome="Att 1", apertura=Attivita.APERTA, area=area, descrizione="1", sede=mascali, ) a.save() p = Persona(nome="Mario", cognome="Rossi", codice_fiscale="FRSSAKJNOKAJMI", data_nascita="1994-2-5") p.save() app = Appartenenza( persona=p, sede=fiumefreddo, membro=Appartenenza.VOLONTARIO, inizio="1980-12-10", ) app.save() t = Turno( attivita=a, prenotazione=datetime.datetime(2015, 11, 10), inizio=datetime.datetime(2015, 11, 10), fine=datetime.datetime(2015, 11, 30), minimo=1, massimo=6, ) t.save() delega = Delega( oggetto=a, persona=p, tipo=REFERENTE, inizio="2015-11-15", ) delega.save() self.assertTrue( p.calendario_turni(datetime.date(2015, 11, 1), datetime.date(2015, 11, 30)).filter(pk=t.pk).exists(), msg= "Il turno viene trovato nel calendario - attivita' creata dalla sede del volontario" )
def test_attivita_estesa(self): sicilia = Sede( nome="Comitato Regionale di Sicilia", tipo=Sede.COMITATO, estensione=LOCALE, ) sicilia.save() fiumefreddo = Sede( nome="Comitato Locale di Fiumefreddo di Sicilia", tipo=Sede.COMITATO, estensione=LOCALE, genitore=sicilia, ) fiumefreddo.save() mascali = Sede( nome="Comitato Locale di Mascali", tipo=Sede.COMITATO, estensione=LOCALE, genitore=sicilia, ) mascali.save() calabria = Sede( nome="Comitato Regionale di Calabria", tipo=Sede.COMITATO, estensione=LOCALE, ) calabria.save() area = Area( nome="6", obiettivo=6, sede=sicilia, ) area.save() a = Attivita( stato=Attivita.VISIBILE, nome="Att 1", apertura=Attivita.APERTA, area=area, descrizione="1", sede=sicilia, estensione=sicilia, ) a.save() a1 = Attivita( stato=Attivita.VISIBILE, nome="Att 1", apertura=Attivita.APERTA, area=area, descrizione="1", sede=fiumefreddo, estensione=sicilia, ) a1.save() t = Turno( attivita=a, prenotazione=datetime.datetime(2015, 11, 10), inizio=datetime.datetime(2015, 11, 10), fine=datetime.datetime(2015, 11, 30), minimo=1, massimo=6, ) t.save() t1 = Turno(attivita=a, prenotazione=datetime.datetime(2015, 11, 10), inizio=datetime.datetime(2015, 10, 10), fine=datetime.datetime(2015, 10, 30)) t1.save() t2 = Turno(attivita=a1, prenotazione=datetime.datetime(2015, 11, 10), inizio=datetime.datetime(2015, 11, 10), fine=datetime.datetime(2015, 11, 30)) t2.save() p = Persona(nome="Mario", cognome="Rossi", codice_fiscale="FRSSAKJSIKAJDO", data_nascita="1994-2-5") p.save() p1 = Persona(nome="Mario", cognome="Rossi", codice_fiscale="FRSSAKJSIRAJDO", data_nascita="1994-2-5") p1.save() p2 = Persona(nome="Mario", cognome="Rossi", codice_fiscale="FRSSAKJNOKAJDO", data_nascita="1994-2-5") p2.save() p3 = Persona(nome="Mario", cognome="Rossi", codice_fiscale="FRSSAKJNOKAJMI", data_nascita="1994-2-5") p3.save() app = Appartenenza( persona=p, sede=sicilia, membro=Appartenenza.VOLONTARIO, inizio="1980-12-10", ) app.save() app1 = Appartenenza( persona=p1, sede=fiumefreddo, membro=Appartenenza.VOLONTARIO, inizio="1980-12-10", ) app1.save() app2 = Appartenenza( persona=p2, sede=mascali, membro=Appartenenza.VOLONTARIO, inizio="1980-12-10", ) app2.save() app3 = Appartenenza( persona=p3, sede=calabria, membro=Appartenenza.VOLONTARIO, inizio="1980-12-10", ) app3.save() self.assertTrue( p2.calendario_turni(datetime.date(2015, 11, 1), datetime.date(2015, 11, 30)).filter(pk=t2.pk).exists(), msg= "Il turno viene trovato nel calendario - attivita' estesa al volontario" ) self.assertFalse( p3.calendario_turni(datetime.date(2015, 11, 1), datetime.date(2015, 11, 30)).filter(pk=t2.pk).exists(), msg= "Il turno non viene trovato nel calendario - attivita' estesa al volontario" )