Skip to content

Commit 9904347

Browse files
Final fix
1 parent 6792ea3 commit 9904347

File tree

1 file changed

+31
-63
lines changed

1 file changed

+31
-63
lines changed

tests/test_functional.py

Lines changed: 31 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -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
12011200
class 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

Comments
 (0)