def test_copy_vector_layer(self): """Test we can copy a vector layer.""" layer = load_test_vector_layer('exposure', 'buildings.shp') new_layer = create_memory_layer('New layer', layer.geometryType(), layer.crs(), layer.fields()) new_layer.keywords = layer.keywords copy_layer(layer, new_layer) self.assertEqual(layer.featureCount(), new_layer.featureCount()) self.assertEqual(len(layer.fields().toList()), len(new_layer.fields().toList())) expected = len(new_layer.fields().toList()) + 1 new_fields = {'STRUCTURE': 'my_new_field'} copy_fields(new_layer, new_fields) self.assertEqual(len(new_layer.fields().toList()), expected) self.assertGreater(new_layer.fieldNameIndex('my_new_field'), -1) remove_fields(new_layer, ['STRUCTURE', 'OSM_TYPE']) self.assertEqual(len(new_layer.fields().toList()), expected - 2) self.assertEqual(new_layer.fieldNameIndex('STRUCTURE'), -1) self.assertEqual(new_layer.fieldNameIndex('OSM_TYPE'), -1) _add_id_column(new_layer) field_name = exposure_id_field['field_name'] self.assertGreater(new_layer.fieldNameIndex(field_name), -1)
def test_copy_vector_layer(self): """Test we can copy a vector layer.""" layer = load_test_vector_layer('exposure', 'buildings.shp') new_layer = create_memory_layer( 'New layer', layer.geometryType(), layer.crs(), layer.fields()) new_layer.keywords = layer.keywords copy_layer(layer, new_layer) self.assertEqual(layer.featureCount(), new_layer.featureCount()) self.assertEqual( len(layer.fields().toList()), len(new_layer.fields().toList())) expected = len(new_layer.fields().toList()) + 1 new_fields = {'STRUCTURE': 'my_new_field'} copy_fields(new_layer, new_fields) self.assertEqual( len(new_layer.fields().toList()), expected) self.assertGreater(new_layer.fieldNameIndex('my_new_field'), -1) remove_fields(new_layer, ['STRUCTURE', 'OSM_TYPE']) self.assertEqual( len(new_layer.fields().toList()), expected - 2) self.assertEqual(new_layer.fieldNameIndex('STRUCTURE'), -1) self.assertEqual(new_layer.fieldNameIndex('OSM_TYPE'), -1) _add_id_column(new_layer) field_name = exposure_id_field['field_name'] self.assertGreater(new_layer.fieldNameIndex(field_name), -1)