1
0
mirror of https://github.com/django/django.git synced 2024-12-22 17:16:24 +00:00

Improved consistency of GEOS error messages.

This commit is contained in:
David Smith 2024-11-08 08:00:05 +00:00
parent 8f01de7c83
commit c7f516831e
5 changed files with 13 additions and 11 deletions

View File

@ -70,12 +70,12 @@ class GEOSCoordSeq(GEOSBase):
def _checkindex(self, index):
"Check the given index."
if not (0 <= index < self.size):
raise IndexError("invalid GEOS Geometry index: %s" % index)
raise IndexError("Invalid GEOS Geometry index: %s" % index)
def _checkdim(self, dim):
"Check the given dimension."
if dim < 0 or dim > 2:
raise GEOSException('invalid ordinate dimension "%d"' % dim)
raise GEOSException('Invalid ordinate dimension: "%d"' % dim)
def _get_x(self, index):
return capi.cs_getx(self.ptr, index, byref(c_double()))

View File

@ -346,7 +346,7 @@ class GEOSGeometryBase(GEOSBase):
two Geometries match the elements in pattern.
"""
if not isinstance(pattern, str) or len(pattern) > 9:
raise GEOSException("invalid intersection matrix pattern")
raise GEOSException("Invalid intersection matrix pattern.")
return capi.geos_relatepattern(self.ptr, other.ptr, force_bytes(pattern))
def touches(self, other):
@ -499,7 +499,9 @@ class GEOSGeometryBase(GEOSBase):
# source SRS.
srid = None
elif srid is None or srid < 0:
raise GEOSException("Calling transform() with no SRID set is not supported")
raise GEOSException(
"Calling transform() with no SRID set is not supported."
)
# Creating an OGR Geometry, which is then transformed.
g = gdal.OGRGeometry(self._ogr_ptr(), srid)

View File

@ -103,7 +103,7 @@ class Polygon(GEOSGeometry):
param,
msg=(
"Parameter must be a sequence of LinearRings or objects that can "
"initialize to LinearRings"
"initialize to LinearRings."
),
):
"Try to construct a ring from the given parameter."

View File

@ -9,7 +9,7 @@ class GEOSCoordSeqTest(SimpleTestCase):
with self.subTest(i):
self.assertEqual(coord_seq[i], (i, i))
for i in (-3, 10):
msg = "invalid GEOS Geometry index: %s" % i
msg = "Invalid GEOS Geometry index: %s" % i
with self.subTest(i):
with self.assertRaisesMessage(IndexError, msg):
coord_seq[i]

View File

@ -651,7 +651,7 @@ class GEOSTest(SimpleTestCase, TestDataMixin):
# Testing polygon construction.
msg = (
"Parameter must be a sequence of LinearRings or "
"objects that can initialize to LinearRings"
"objects that can initialize to LinearRings."
)
with self.assertRaisesMessage(TypeError, msg):
Polygon(0, [1, 2, 3])
@ -776,7 +776,7 @@ class GEOSTest(SimpleTestCase, TestDataMixin):
def test_relate_pattern(self):
"Testing relate() and relate_pattern()."
g = fromstr("POINT (0 0)")
msg = "invalid intersection matrix pattern"
msg = "Invalid intersection matrix pattern."
with self.assertRaisesMessage(GEOSException, msg):
g.relate_pattern(0, "invalid pattern, yo")
for rg in self.geometries.relate_geoms:
@ -1078,7 +1078,7 @@ class GEOSTest(SimpleTestCase, TestDataMixin):
# Should only be able to use __setitem__ with LinearRing geometries.
msg = (
"Parameter must be a sequence of LinearRings or "
"objects that can initialize to LinearRings"
"objects that can initialize to LinearRings."
)
with self.assertRaisesMessage(TypeError, msg):
@ -1309,7 +1309,7 @@ class GEOSTest(SimpleTestCase, TestDataMixin):
if isinstance(g, Point):
# IndexError is not raised in GEOS 3.8.0.
if geos_version_tuple() != (3, 8, 0):
msg = "invalid GEOS Geometry index:"
msg = "Invalid GEOS Geometry index:"
with self.assertRaisesMessage(IndexError, msg):
g.x
elif isinstance(g, Polygon):
@ -1443,7 +1443,7 @@ class GEOSTest(SimpleTestCase, TestDataMixin):
"""Testing `transform` method (no SRID or negative SRID)"""
g = GEOSGeometry("POINT (-104.609 38.255)", srid=None)
msg = "Calling transform() with no SRID set is not supported"
msg = "Calling transform() with no SRID set is not supported."
with self.assertRaisesMessage(GEOSException, msg):
g.transform(2774)