Пример #1
0
def update_vector(name, vector_file_path=None, new_name=None, properties=None):
    """
    Update an existing vector in database and update it the Niamoto
    vector registry. Uses ogr2ogr. All vectors are stored in the
    settings.NIAMOTO_RASTER_SCHEMA schema.
    :param name: The name of the vector.
    :param vector_file_path: The path to the vector file. If None, the vector
        data won't be updated.
    :param new_name: The new name of the vector (not changed if None).
    :param properties: A dict of arbitrary properties.
    """
    return VectorManager.update_vector(name,
                                       vector_file_path,
                                       new_name=new_name,
                                       properties=properties)
 def test_update_vector(self):
     # Add raster
     VectorManager.add_vector('ncl_adm1', SHP_TEST)
     # Update raster
     VectorManager.update_vector('ncl_adm1', SHP_TEST, new_name='ncl')
     VectorManager.update_vector('ncl', SHP_TEST)
     self.assertRaises(
         NoRecordFoundError,
         VectorManager.update_vector,
         'ncl_adm1',
         SHP_TEST,
     )
     null_path = os.path.join(NIAMOTO_HOME, "NULL.shp")
     self.assertRaises(
         FileNotFoundError,
         VectorManager.add_vector,
         "ncl_bis",
         null_path,
     )
     VectorManager.add_vector('ncl_adm', SHP_TEST)
     self.assertRaises(RecordAlreadyExistsError,
                       VectorManager.update_vector,
                       'ncl',
                       SHP_TEST,
                       new_name='ncl_adm')
     df = VectorManager.get_vector_list()
     self.assertIn('ncl', list(df['name']))
     engine = Connector.get_engine()
     inspector = Inspector.from_engine(engine)
     self.assertIn(
         'ncl',
         inspector.get_table_names(schema=settings.NIAMOTO_VECTOR_SCHEMA),
     )
     self.assertNotIn(
         'ncl_adm1',
         inspector.get_table_names(schema=settings.NIAMOTO_VECTOR_SCHEMA),
     )
     VectorManager.update_vector('ncl', )