@@ -3481,3 +3481,83 @@ def test_ogr2ogr_lib_create_field_failure(tmp_vsimem):
34813481 layerName = "test" ,
34823482 skipFailures = True ,
34833483 )
3484+
3485+
3486+ ###############################################################################
3487+
3488+
3489+ @pytest .mark .require_driver ("GeoJSON" )
3490+ @pytest .mark .parametrize ("quiet" , [True , False ])
3491+ def test_ogr2ogr_lib_warn_no_curve_support (tmp_vsimem , quiet ):
3492+
3493+ src_ds = gdal .GetDriverByName ("MEM" ).CreateVector ("" )
3494+ src_lyr = src_ds .CreateLayer ("test" )
3495+ f = ogr .Feature (src_lyr .GetLayerDefn ())
3496+ f .SetGeometry (ogr .CreateGeometryFromWkt ("CIRCULARSTRING(0 0,1 1,2 0)" ))
3497+ src_lyr .CreateFeature (f )
3498+ f = ogr .Feature (src_lyr .GetLayerDefn ())
3499+ f .SetGeometry (ogr .CreateGeometryFromWkt ("CIRCULARSTRING(0 0,1 1,2 0)" ))
3500+ src_lyr .CreateFeature (f )
3501+
3502+ if quiet :
3503+ with gdaltest .error_raised (gdal .CE_None ):
3504+ gdal .VectorTranslate (tmp_vsimem / "out.geojson" , src_ds , quiet = True )
3505+ else :
3506+ with gdaltest .error_raised (
3507+ gdal .CE_Warning , match = "Attempt to write curve geometries"
3508+ ):
3509+ gdal .VectorTranslate (tmp_vsimem / "out.geojson" , src_ds )
3510+
3511+
3512+ ###############################################################################
3513+
3514+
3515+ @pytest .mark .require_driver ("MapML" )
3516+ @pytest .mark .parametrize ("quiet" , [True , False ])
3517+ def test_ogr2ogr_lib_warn_no_Z_support (tmp_vsimem , quiet ):
3518+
3519+ src_ds = gdal .GetDriverByName ("MEM" ).CreateVector ("" )
3520+ src_lyr = src_ds .CreateLayer ("test" )
3521+ f = ogr .Feature (src_lyr .GetLayerDefn ())
3522+ f .SetGeometry (ogr .CreateGeometryFromWkt ("POINT Z (1 2 3)" ))
3523+ src_lyr .CreateFeature (f )
3524+ f = ogr .Feature (src_lyr .GetLayerDefn ())
3525+ f .SetGeometry (ogr .CreateGeometryFromWkt ("POINT Z (1 2 3)" ))
3526+ src_lyr .CreateFeature (f )
3527+
3528+ if quiet :
3529+ with gdaltest .error_raised (gdal .CE_None ):
3530+ gdal .VectorTranslate (
3531+ tmp_vsimem / "out.mapml" , src_ds , format = "MAPML" , quiet = True
3532+ )
3533+ else :
3534+ with gdaltest .error_raised (
3535+ gdal .CE_Warning , match = "Attempt to write Z geometries"
3536+ ):
3537+ gdal .VectorTranslate (tmp_vsimem / "out.mapml" , src_ds , format = "MAPML" )
3538+
3539+
3540+ ###############################################################################
3541+
3542+
3543+ @pytest .mark .require_driver ("GeoJSON" )
3544+ @pytest .mark .parametrize ("quiet" , [True , False ])
3545+ def test_ogr2ogr_lib_warn_no_M_support (tmp_vsimem , quiet ):
3546+
3547+ src_ds = gdal .GetDriverByName ("MEM" ).CreateVector ("" )
3548+ src_lyr = src_ds .CreateLayer ("test" )
3549+ f = ogr .Feature (src_lyr .GetLayerDefn ())
3550+ f .SetGeometry (ogr .CreateGeometryFromWkt ("POINT M (1 2 3)" ))
3551+ src_lyr .CreateFeature (f )
3552+ f = ogr .Feature (src_lyr .GetLayerDefn ())
3553+ f .SetGeometry (ogr .CreateGeometryFromWkt ("POINT M (1 2 3)" ))
3554+ src_lyr .CreateFeature (f )
3555+
3556+ if quiet :
3557+ with gdaltest .error_raised (gdal .CE_None ):
3558+ gdal .VectorTranslate (tmp_vsimem / "out.geojson" , src_ds , quiet = True )
3559+ else :
3560+ with gdaltest .error_raised (
3561+ gdal .CE_Warning , match = "Attempt to write M geometries"
3562+ ):
3563+ gdal .VectorTranslate (tmp_vsimem / "out.geojson" , src_ds )
0 commit comments