def test_importa_archivo_utf8_correctamente(self): bd = BaseDatosContacto(id=1) bd.archivo_importacion = File(open(self.get_test_resource( "planilla-ejemplo-6.csv"), 'r')) bd.nombre_archivo_importacion = "bd-contactos-utf8.csv" bd.save() # ----- service = CreacionBaseDatosService() service.genera_base_dato_contacto(bd) metadata = bd.get_metadata() metadata.cantidad_de_columnas = 2 metadata.columna_con_telefono = 0 metadata.columnas_con_telefono = [0] metadata.nombres_de_columnas = ["telefono", "Nombre"] metadata.primer_fila_es_encabezado = True metadata.save() service.importa_contactos(bd, ['telefono'], None) self.assertEquals(Contacto.objects.count(), 2) contactos = list(Contacto.objects.all()) contactos_dict = dict([(c.telefono, c.datos) for c in contactos]) self.assertIn('375849371648', contactos_dict) self.assertIn('957327493493', contactos_dict)
def test_genera_base_datos_falla_archivo_xls(self): bd = BaseDatosContacto(id=1) bd.nombre_archivo_importacion = "planilla-ejemplo-0.xls" bd.save() # ----- creacion_base_de_datos_service = CreacionBaseDatosService() with self.assertRaises(OmlArchivoImportacionInvalidoError): creacion_base_de_datos_service.genera_base_dato_contacto(bd)
def form_valid(self, form): self.object = form.save(commit=False) self.object.estado = BaseDatosContacto.ESTADO_DEFINIDA_ACTUALIZADA # self.object.nombre_archivo_importacion = nombre_archivo_importacion try: creacion_base_datos = CreacionBaseDatosService() creacion_base_datos.genera_base_dato_contacto(self.object) except OmlArchivoImportacionInvalidoError: message = _('<strong>Operación Errónea!</strong> ') + \ _('El archivo especificado para realizar la importación de contactos ' 'no es válido.') messages.add_message( self.request, messages.ERROR, message, ) return self.form_invalid(form) return redirect(self.get_success_url())