@@ -1197,96 +1197,64 @@ def test_to_metadata(self, Lake):
11971197 assert len (new_Lake .indexes ) == 1
11981198
11991199
1200- @test_only_with_dialects ("postgresql" ) # TODO: This test should work for all dialects
12011200class TestAsBinaryWKT :
12021201 def test_create_insert (self , conn , dialect_name ):
12031202 class GeometryWkt (Geometry ):
12041203 """Geometry type that uses WKT strings."""
12051204
1206- from_text = "ST_GeomFromText "
1205+ from_text = "ST_GeomFromEWKT "
12071206 as_binary = "ST_AsText"
12081207 ElementType = WKTElement
12091208
12101209 # Define the table
12111210 cols = [
12121211 Column ("id" , Integer , primary_key = True ),
12131212 ]
1214- if dialect_name != "geopackage" :
1215- cols .append (Column ("geom" , GeometryWkt (geometry_type = "LINESTRING" )))
12161213 cols .append (Column ("geom_with_srid" , GeometryWkt (geometry_type = "LINESTRING" , srid = 4326 )))
1214+ if dialect_name not in ["geopackage" , "mariadb" ]:
1215+ cols .append (Column ("geom" , GeometryWkt (geometry_type = "LINESTRING" )))
12171216 t = Table ("use_wkt" , MetaData (), * cols )
12181217
12191218 # Create the table
12201219 t .create (bind = conn )
12211220
12221221 # Test element insertion
12231222 inserted_values = [
1224- {
1225- "geom_with_srid" : "SRID=4326;LINESTRING(0 0,1 1)" ,
1226- },
1227- {
1228- "geom_with_srid" : WKTElement ("LINESTRING(0 0,2 2)" , srid = 4326 ),
1229- },
1230- {
1231- "geom_with_srid" : WKTElement ("SRID=4326;LINESTRING(0 0,3 3)" , extended = True ),
1232- },
1233- {
1234- "geom_with_srid" : from_shape (LineString ([[0 , 0 ], [4 , 4 ]]), srid = 4326 ),
1235- },
1223+ {"geom_with_srid" : v }
1224+ for v in [
1225+ "SRID=4326;LINESTRING(0 0,1 1)" ,
1226+ WKTElement ("LINESTRING(0 0,2 2)" , srid = 4326 ),
1227+ WKTElement ("SRID=4326;LINESTRING(0 0,3 3)" , extended = True ),
1228+ from_shape (LineString ([[0 , 0 ], [4 , 4 ]]), srid = 4326 ),
1229+ ]
12361230 ]
1237- if dialect_name != "geopackage" :
1238- for i in inserted_values :
1239- i ["geom" ] = i ["geom_with_srid" ]
1231+ if dialect_name not in ["geopackage" , "mariadb" ]:
1232+ for i , v in zip (
1233+ inserted_values ,
1234+ [
1235+ "LINESTRING(0 0,1 1)" ,
1236+ WKTElement ("LINESTRING(0 0,2 2)" ),
1237+ WKTElement ("SRID=-1;LINESTRING(0 0,3 3)" , extended = True ),
1238+ from_shape (LineString ([[0 , 0 ], [4 , 4 ]])),
1239+ ],
1240+ ):
1241+ i ["geom" ] = v
12401242
12411243 conn .execute (t .insert (), inserted_values )
12421244
12431245 results = conn .execute (t .select ())
12441246 rows = results .fetchall ()
12451247
1246- # import pdb
1247- # pdb.set_trace()
1248- for num , element in enumerate (rows [0 ][1 :]):
1249- assert isinstance (element , WKTElement )
1250- wkt = conn .execute (
1251- from_shape (LineString ([[0 , 0 ], [3 , 3 ]]), srid = 4326 ).ST_AsText ()
1252- ).scalar ()
1253- wkt = conn .execute (element .ST_AsText ()).scalar ()
1254- assert format_wkt (wkt ) == "LINESTRING(0 0,1 1)"
1255- srid = conn .execute (element .ST_SRID ()).scalar ()
1256- if num == 0 :
1257- assert srid == 0
1258- else :
1259- assert srid == 4326
1260-
1261- for num , element in enumerate (rows [1 ][1 :]):
1262- assert isinstance (element , WKTElement )
1263- wkt = conn .execute (element .ST_AsText ()).scalar ()
1264- assert format_wkt (wkt ) == "LINESTRING(0 0,2 2)"
1265- srid = conn .execute (element .ST_SRID ()).scalar ()
1266- if num == 0 :
1267- assert srid == 0
1268- else :
1269- assert srid == 4326
1270-
1271- for num , element in enumerate (rows [2 ][1 :]):
1272- assert isinstance (element , WKTElement )
1273- wkt = conn .execute (element .ST_AsText ()).scalar ()
1274- assert format_wkt (wkt ) == "LINESTRING(0 0,3 3)"
1275- srid = conn .execute (element .ST_SRID ()).scalar ()
1276- if num == 0 :
1277- assert srid == 0
1278- else :
1279- assert srid == 4326
1280-
1281- for num , element in enumerate (rows [3 ][1 :]):
1282- assert isinstance (element , WKTElement )
1283- wkt = conn .execute (element .ST_AsText ()).scalar ()
1284- assert format_wkt (wkt ) == "LINESTRING(0 0,4 4)"
1285- srid = conn .execute (element .ST_SRID ()).scalar ()
1286- if num == 0 :
1287- assert srid == 0
1288- else :
1289- assert srid == 4326
1248+ for row_num , row in enumerate (rows ):
1249+ for num , element in enumerate (row [1 :]):
1250+ assert isinstance (element , WKTElement )
1251+ wkt = conn .execute (element .ST_AsText ()).scalar ()
1252+ assert format_wkt (wkt ) == f"LINESTRING(0 0,{ row_num + 1 } { row_num + 1 } )"
1253+ srid = conn .execute (element .ST_SRID ()).scalar ()
1254+ if num == 1 :
1255+ assert srid == 0 if dialect_name != "sqlite" else - 1
1256+ else :
1257+ assert srid == 4326
12901258
12911259 # Drop the table
12921260 t .drop (bind = conn )
0 commit comments