mirror of
https://github.com/django/django.git
synced 2025-08-21 09:19:12 +00:00
Added message to TypeError exceptions in GEOS WKTReader and WKBReader.
This commit is contained in:
parent
ef42718a2b
commit
49cb481f3d
@ -156,7 +156,7 @@ class _WKTReader(IOBase):
|
|||||||
|
|
||||||
def read(self, wkt):
|
def read(self, wkt):
|
||||||
if not isinstance(wkt, (bytes, str)):
|
if not isinstance(wkt, (bytes, str)):
|
||||||
raise TypeError
|
raise TypeError(f"'wkt' must be bytes or str (got {wkt!r} instead).")
|
||||||
return wkt_reader_read(self.ptr, force_bytes(wkt))
|
return wkt_reader_read(self.ptr, force_bytes(wkt))
|
||||||
|
|
||||||
|
|
||||||
@ -176,7 +176,9 @@ class _WKBReader(IOBase):
|
|||||||
wkb_s = wkb.encode()
|
wkb_s = wkb.encode()
|
||||||
return wkb_reader_read_hex(self.ptr, wkb_s, len(wkb_s))
|
return wkb_reader_read_hex(self.ptr, wkb_s, len(wkb_s))
|
||||||
else:
|
else:
|
||||||
raise TypeError
|
raise TypeError(
|
||||||
|
f"'wkb' must be bytes, str or memoryview (got {wkb!r} instead)."
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def default_trim_value():
|
def default_trim_value():
|
||||||
|
@ -29,15 +29,23 @@ class GEOSIOTest(SimpleTestCase):
|
|||||||
self.assertEqual(ref, geom)
|
self.assertEqual(ref, geom)
|
||||||
|
|
||||||
# Should only accept string objects.
|
# Should only accept string objects.
|
||||||
with self.assertRaises(TypeError):
|
bad_input = (1, 5.23, None, False, memoryview(b"foo"))
|
||||||
wkt_r.read(1)
|
msg = "'wkt' must be bytes or str (got {} instead)."
|
||||||
with self.assertRaises(TypeError):
|
for bad_wkt in bad_input:
|
||||||
wkt_r.read(memoryview(b"foo"))
|
with (
|
||||||
|
self.subTest(bad_wkt=bad_wkt),
|
||||||
|
self.assertRaisesMessage(TypeError, msg.format(bad_wkt)),
|
||||||
|
):
|
||||||
|
wkt_r.read(bad_wkt)
|
||||||
|
|
||||||
def test02_wktwriter(self):
|
def test02_wktwriter(self):
|
||||||
# Creating a WKTWriter instance, testing its ptr property.
|
# Creating a WKTWriter instance, testing its ptr property.
|
||||||
wkt_w = WKTWriter()
|
wkt_w = WKTWriter()
|
||||||
with self.assertRaises(TypeError):
|
msg = (
|
||||||
|
"Incompatible pointer type: "
|
||||||
|
"<class 'django.contrib.gis.geos.prototypes.io.LP_WKTReader_st'>."
|
||||||
|
)
|
||||||
|
with self.assertRaisesMessage(TypeError, msg):
|
||||||
wkt_w.ptr = WKTReader.ptr_type()
|
wkt_w.ptr = WKTReader.ptr_type()
|
||||||
|
|
||||||
ref = GEOSGeometry("POINT (5 23)")
|
ref = GEOSGeometry("POINT (5 23)")
|
||||||
@ -72,8 +80,12 @@ class GEOSIOTest(SimpleTestCase):
|
|||||||
self.assertEqual(ref, geom)
|
self.assertEqual(ref, geom)
|
||||||
|
|
||||||
bad_input = (1, 5.23, None, False)
|
bad_input = (1, 5.23, None, False)
|
||||||
|
msg = "'wkb' must be bytes, str or memoryview (got {} instead)."
|
||||||
for bad_wkb in bad_input:
|
for bad_wkb in bad_input:
|
||||||
with self.assertRaises(TypeError):
|
with (
|
||||||
|
self.subTest(bad_wkb=bad_wkb),
|
||||||
|
self.assertRaisesMessage(TypeError, msg.format(bad_wkb)),
|
||||||
|
):
|
||||||
wkb_r.read(bad_wkb)
|
wkb_r.read(bad_wkb)
|
||||||
|
|
||||||
def test04_wkbwriter(self):
|
def test04_wkbwriter(self):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user