From 880c8fa088e3d07c0652b1cdb2ba606d08528779 Mon Sep 17 00:00:00 2001 From: Mariusz Felisiak Date: Wed, 15 Oct 2025 13:57:09 +0200 Subject: [PATCH] Skipped GISFunctionsTests.test_geometry_type() test for MultiPoint on MariaDB and GEOS 3.12+. GEOSWKTWriter_write() behavior was changed in GEOS 3.12+ to include parentheses for sub-members (https://github.com/libgeos/geos/pull/903). MariaDB doesn't accept WKT representations with additional parentheses for MultiPoint. This is an accepted bug (MDEV-36166) in MariaDB that should be fixed in the future: - https://jira.mariadb.org/browse/MDEV-36166 --- tests/gis_tests/geoapp/test_functions.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/tests/gis_tests/geoapp/test_functions.py b/tests/gis_tests/geoapp/test_functions.py index daf16ce99d..6f687f5d51 100644 --- a/tests/gis_tests/geoapp/test_functions.py +++ b/tests/gis_tests/geoapp/test_functions.py @@ -14,6 +14,7 @@ from django.contrib.gis.geos import ( Polygon, fromstr, ) +from django.contrib.gis.geos.libgeos import geos_version_tuple from django.contrib.gis.measure import Area from django.db import NotSupportedError, connection from django.db.models import IntegerField, Sum, Value @@ -908,7 +909,6 @@ class GISFunctionsTests(FuncTestMixin, TestCase): Feature(name="Point", geom=Point(0, 0)), Feature(name="LineString", geom=LineString((0, 0), (1, 1))), Feature(name="Polygon", geom=Polygon(((0, 0), (1, 0), (1, 1), (0, 0)))), - Feature(name="MultiPoint", geom=MultiPoint(Point(0, 0), Point(1, 1))), Feature( name="MultiLineString", geom=MultiLineString( @@ -927,10 +927,19 @@ class GISFunctionsTests(FuncTestMixin, TestCase): ("POINT", Point), ("LINESTRING", LineString), ("POLYGON", Polygon), - ("MULTIPOINT", MultiPoint), ("MULTILINESTRING", MultiLineString), ("MULTIPOLYGON", MultiPolygon), ] + # GEOSWKTWriter_write() behavior was changed in GEOS 3.12+ to include + # parentheses for sub-members. MariaDB doesn't accept WKT + # representations with additional parentheses for MultiPoint. This is + # an accepted bug (MDEV-36166) in MariaDB that should be fixed in the + # future. + if not connection.ops.mariadb or geos_version_tuple() < (3, 12): + test_features.append( + Feature(name="MultiPoint", geom=MultiPoint(Point(0, 0), Point(1, 1))) + ) + expected_results.append(("MULTIPOINT", MultiPoint)) for test_feature, (geom_type, geom_class) in zip( test_features, expected_results, strict=True ):