Commit e084ff01 authored by Claude Paroz's avatar Claude Paroz
Browse files

Fixed #24136 -- Prevented crash when convert_extent input is None

Thanks Max Demars for the report.
parent 65246de7
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -193,6 +193,8 @@ class PostGISOperations(DatabaseOperations, BaseSpatialOperations):
        the bounding box text returned by PostGIS (`box` argument), for
        example: "BOX(-90.0 30.0, -85.0 40.0)".
        """
        if box is None:
            return None
        ll, ur = box[4:-1].split(',')
        xmin, ymin = map(float, ll.split())
        xmax, ymax = map(float, ur.split())
@@ -204,6 +206,8 @@ class PostGISOperations(DatabaseOperations, BaseSpatialOperations):
        the 3d bounding-box text returned by PostGIS (`box3d` argument), for
        example: "BOX3D(-90.0 30.0 1, -85.0 40.0 2)".
        """
        if box3d is None:
            return None
        ll, ur = box3d[6:-1].split(',')
        xmin, ymin, zmin = map(float, ll.split())
        xmax, ymax, zmax = map(float, ur.split())
+2 −0
Original line number Diff line number Diff line
@@ -134,6 +134,8 @@ class SpatiaLiteOperations(DatabaseOperations, BaseSpatialOperations):
        """
        Convert the polygon data received from Spatialite to min/max values.
        """
        if box is None:
            return None
        shell = Geometry(box, srid).shell
        xmin, ymin = shell[0][:2]
        xmax, ymax = shell[2][:2]
+1 −0
Original line number Diff line number Diff line
@@ -222,6 +222,7 @@ class Geo3DTest(TestCase):

        for e3d in [extent1, extent2]:
            check_extent3d(e3d)
        self.assertIsNone(City3D.objects.none().extent3d())

    def test_perimeter(self):
        """
+1 −0
Original line number Diff line number Diff line
@@ -482,6 +482,7 @@ class GeoQuerySetTest(TestCase):

        for val, exp in zip(extent, expected):
            self.assertAlmostEqual(exp, val, 4)
        self.assertIsNone(City.objects.filter(name=('Smalltown')).extent())

    @skipUnlessDBFeature("has_force_rhr_method")
    def test_force_rhr(self):