mirror of
https://github.com/django/django.git
synced 2025-08-21 01:09:13 +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):
|
||||
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))
|
||||
|
||||
|
||||
@ -176,7 +176,9 @@ class _WKBReader(IOBase):
|
||||
wkb_s = wkb.encode()
|
||||
return wkb_reader_read_hex(self.ptr, wkb_s, len(wkb_s))
|
||||
else:
|
||||
raise TypeError
|
||||
raise TypeError(
|
||||
f"'wkb' must be bytes, str or memoryview (got {wkb!r} instead)."
|
||||
)
|
||||
|
||||
|
||||
def default_trim_value():
|
||||
|
@ -29,15 +29,23 @@ class GEOSIOTest(SimpleTestCase):
|
||||
self.assertEqual(ref, geom)
|
||||
|
||||
# Should only accept string objects.
|
||||
with self.assertRaises(TypeError):
|
||||
wkt_r.read(1)
|
||||
with self.assertRaises(TypeError):
|
||||
wkt_r.read(memoryview(b"foo"))
|
||||
bad_input = (1, 5.23, None, False, memoryview(b"foo"))
|
||||
msg = "'wkt' must be bytes or str (got {} instead)."
|
||||
for bad_wkt in bad_input:
|
||||
with (
|
||||
self.subTest(bad_wkt=bad_wkt),
|
||||
self.assertRaisesMessage(TypeError, msg.format(bad_wkt)),
|
||||
):
|
||||
wkt_r.read(bad_wkt)
|
||||
|
||||
def test02_wktwriter(self):
|
||||
# Creating a WKTWriter instance, testing its ptr property.
|
||||
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()
|
||||
|
||||
ref = GEOSGeometry("POINT (5 23)")
|
||||
@ -72,8 +80,12 @@ class GEOSIOTest(SimpleTestCase):
|
||||
self.assertEqual(ref, geom)
|
||||
|
||||
bad_input = (1, 5.23, None, False)
|
||||
msg = "'wkb' must be bytes, str or memoryview (got {} instead)."
|
||||
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)
|
||||
|
||||
def test04_wkbwriter(self):
|
||||
|
Loading…
x
Reference in New Issue
Block a user