Fixed #15529 -- More permissive geojson syntax in constructor

Thanks Wouter Klein Heerenbrink for the report.
This commit is contained in:
Claude Paroz 2013-10-31 18:15:54 +01:00
parent 0d9c149990
commit c64efe3734
2 changed files with 4 additions and 1 deletions

View File

@ -121,6 +121,9 @@ class OGRGeomTest(unittest.TestCase, TestDataMixin):
self.assertEqual(json.loads(g.json), json.loads(geom.json)) self.assertEqual(json.loads(g.json), json.loads(geom.json))
self.assertEqual(json.loads(g.json), json.loads(geom.geojson)) self.assertEqual(json.loads(g.json), json.loads(geom.geojson))
self.assertEqual(OGRGeometry(g.wkt), OGRGeometry(geom.json)) self.assertEqual(OGRGeometry(g.wkt), OGRGeometry(geom.json))
# Test input with some garbage content (but valid json) (#15529)
geom = OGRGeometry('{"type": "Point", "coordinates": [ 100.0, 0.0 ], "other": "<test>"}')
self.assertIsInstance(geom, OGRGeometry)
def test02_points(self): def test02_points(self):
"Testing Point objects." "Testing Point objects."

View File

@ -9,4 +9,4 @@ wkt_regex = re.compile(r'^(SRID=(?P<srid>\-?\d+);)?'
r'(?P<type>POINT|LINESTRING|LINEARRING|POLYGON|MULTIPOINT|MULTILINESTRING|MULTIPOLYGON|GEOMETRYCOLLECTION)' r'(?P<type>POINT|LINESTRING|LINEARRING|POLYGON|MULTIPOINT|MULTILINESTRING|MULTIPOLYGON|GEOMETRYCOLLECTION)'
r'[ACEGIMLONPSRUTYZ\d,\.\-\(\) ]+)$', r'[ACEGIMLONPSRUTYZ\d,\.\-\(\) ]+)$',
re.I) re.I)
json_regex = re.compile(r'^(\s+)?\{[\s\w,\[\]\{\}\-\."\':]+\}(\s+)?$') json_regex = re.compile(r'^(\s+)?\{.*}(\s+)?$', re.DOTALL)