def parsea_boletin(boletin_str, cursor, filename = ""): boletin = Boletin(boletin_str) adjudicaciones_str = boletin.get_modulos_seccion("Adjudicaciones") totales = { "adjudicaciones" : 0, "sociedades" : 0, "oferentes" : 0, "reparticiones" : 0} boletin_regex = re.compile("-",re.IGNORECASE | re.MULTILINE) matchs = boletin_regex.split(filename) cursor.execute(db_inserts['boletin'], (matchs[0], matchs[1].replace('.txt', ''))) boletin_id = cursor.lastrowid for adjudicacion_str in adjudicaciones_str: adjudicacion = Adjudicacion(adjudicacion_str) reparticion = adjudicacion.get_entidad_publica() cursor.execute(db_queries['reparticion'], '%'+string.capwords(reparticion)+'%') reparticion_id = cursor.fetchone() if not reparticion_id: cursor.execute(db_inserts['reparticion'], reparticion) totales['reparticiones'] += 1 reparticion_id = cursor.lastrowid else: reparticion_id = reparticion_id[0] try: adjudicacion_objeto = adjudicacion.get_objeto() cursor.execute(db_inserts['adjudicacion'], (adjudicacion_objeto, adjudicacion.get_texto(), reparticion_id, boletin_id)) except Exception, e: logging.error(logging_msg, filename, adjudicacion.get_texto()) adjudicacion_id = cursor.lastrowid precios = adjudicacion.get_precios() proveedores = adjudicacion.get_proveedores() for proveedor, precio in zip(proveedores, precios): proveedor_title = string.capwords(proveedor) cursor.execute(db_queries['sociedad'], proveedor_title) sociedad = cursor.fetchone() if not sociedad: cursor.execute(db_inserts['sociedad'], proveedor_title) totales['sociedades'] += 1 proveedor_id = cursor.lastrowid else: proveedor_id = sociedad[0] #cursor.execute(db_inserts['sociedad2'], proveedor_title) precio_str = "{0} {1}".format(precio['moneda'], precio['valor']) cursor.execute(db_inserts['oferente'], (proveedor_id, adjudicacion_id, precio_str)) totales['oferentes'] += 1 totales['adjudicaciones'] += 1
def test_when_empty_return_texto_empty(self): adjudicacion = Adjudicacion() self.assertFalse(bool(adjudicacion.get_texto()))
def test_when_nestor_return_texto_nestor(self): adjudicacion = Adjudicacion("Nestor") self.assertEqual(adjudicacion.get_texto(), "Nestor")
def parsea_boletin(boletin_str, cursor, filename=""): boletin = Boletin(boletin_str) adjudicaciones_str = boletin.get_modulos_seccion("Adjudicaciones") totales = { "adjudicaciones": 0, "sociedades": 0, "oferentes": 0, "reparticiones": 0 } boletin_regex = re.compile("-", re.IGNORECASE | re.MULTILINE) matchs = boletin_regex.split(filename) cursor.execute(db_inserts['boletin'], (matchs[0], matchs[1].replace('.txt', ''))) boletin_id = cursor.lastrowid for adjudicacion_str in adjudicaciones_str: adjudicacion = Adjudicacion(adjudicacion_str) reparticion = adjudicacion.get_entidad_publica() cursor.execute(db_queries['reparticion'], '%' + string.capwords(reparticion) + '%') reparticion_id = cursor.fetchone() if not reparticion_id: cursor.execute(db_inserts['reparticion'], reparticion) totales['reparticiones'] += 1 reparticion_id = cursor.lastrowid else: reparticion_id = reparticion_id[0] try: adjudicacion_objeto = adjudicacion.get_objeto() cursor.execute(db_inserts['adjudicacion'], (adjudicacion_objeto, adjudicacion.get_texto(), reparticion_id, boletin_id)) except Exception, e: logging.error(logging_msg, filename, adjudicacion.get_texto()) adjudicacion_id = cursor.lastrowid precios = adjudicacion.get_precios() proveedores = adjudicacion.get_proveedores() for proveedor, precio in zip(proveedores, precios): proveedor_title = string.capwords(proveedor) cursor.execute(db_queries['sociedad'], proveedor_title) sociedad = cursor.fetchone() if not sociedad: cursor.execute(db_inserts['sociedad'], proveedor_title) totales['sociedades'] += 1 proveedor_id = cursor.lastrowid else: proveedor_id = sociedad[0] #cursor.execute(db_inserts['sociedad2'], proveedor_title) precio_str = "{0} {1}".format(precio['moneda'], precio['valor']) cursor.execute(db_inserts['oferente'], (proveedor_id, adjudicacion_id, precio_str)) totales['oferentes'] += 1 totales['adjudicaciones'] += 1