@@ -3078,3 +3078,61 @@ def test_ogr_mitab_creation_illegal_layer_name(tmp_vsimem):
30783078 ds = ogr .GetDriverByName ("MapInfo File" ).CreateDataSource (tmp_vsimem / "out" )
30793079 with pytest .raises (Exception , match = "Illegal character" ):
30803080 ds .CreateLayer ("illegal/with/slash" )
3081+
3082+
3083+ ###############################################################################
3084+
3085+
3086+ @gdaltest .enable_exceptions ()
3087+ def test_ogr_mitab_mif_linestring_one_point (tmp_vsimem ):
3088+
3089+ with gdal .GetDriverByName ("MapInfo File" ).CreateVector (
3090+ tmp_vsimem / "out.mif"
3091+ ) as ds :
3092+ lyr = ds .CreateLayer ("out" )
3093+ lyr .CreateField (ogr .FieldDefn ("ID" , ogr .OFTInteger ))
3094+ f = ogr .Feature (lyr .GetLayerDefn ())
3095+ f .SetGeometry (ogr .CreateGeometryFromWkt ("LINESTRING (1 2)" ))
3096+ lyr .CreateFeature (f )
3097+
3098+ with gdal .VSIFile (tmp_vsimem / "out.mif" , "rb" ) as f :
3099+ data = f .read ()
3100+
3101+ assert (
3102+ data
3103+ == b'Version 300\n Charset "Neutral"\n Delimiter ","\n Columns 1\n ID Integer\n Data\n \n Pline 1\n 1 2\n Pen (1,2,0)\n '
3104+ )
3105+
3106+ with ogr .Open (tmp_vsimem / "out.mif" ) as ds :
3107+ lyr = ds .GetLayer (0 )
3108+ f = lyr .GetNextFeature ()
3109+ assert f .GetGeometryRef ().ExportToWkt () == "LINESTRING (1 2)"
3110+
3111+
3112+ ###############################################################################
3113+
3114+
3115+ @gdaltest .enable_exceptions ()
3116+ def test_ogr_mitab_mif_multilinestring_one_point (tmp_vsimem ):
3117+
3118+ with gdal .GetDriverByName ("MapInfo File" ).CreateVector (
3119+ tmp_vsimem / "out.mif"
3120+ ) as ds :
3121+ lyr = ds .CreateLayer ("out" )
3122+ lyr .CreateField (ogr .FieldDefn ("ID" , ogr .OFTInteger ))
3123+ f = ogr .Feature (lyr .GetLayerDefn ())
3124+ f .SetGeometry (ogr .CreateGeometryFromWkt ("MULTILINESTRING ((1 2))" ))
3125+ lyr .CreateFeature (f )
3126+
3127+ with gdal .VSIFile (tmp_vsimem / "out.mif" , "rb" ) as f :
3128+ data = f .read ()
3129+
3130+ assert (
3131+ data
3132+ == b'Version 300\n Charset "Neutral"\n Delimiter ","\n Columns 1\n ID Integer\n Data\n \n PLINE MULTIPLE 1\n 1\n 1 2\n Pen (1,2,0)\n '
3133+ )
3134+
3135+ with ogr .Open (tmp_vsimem / "out.mif" ) as ds :
3136+ lyr = ds .GetLayer (0 )
3137+ f = lyr .GetNextFeature ()
3138+ assert f .GetGeometryRef ().ExportToWkt () == "MULTILINESTRING ((1 2))"
0 commit comments