Commit e494b9ff authored by krishbharadwaj's avatar krishbharadwaj Committed by Tim Graham
Browse files

Fixed #26509 -- Deprecated the contrib.gis.utils.precision_wkt() function.

parent a3265af8
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
"""
 Utilities for manipulating Geometry WKT.
"""
import warnings

from django.utils import six
from django.utils.deprecation import RemovedInDjango20Warning


def precision_wkt(geom, prec):
@@ -21,6 +23,11 @@ def precision_wkt(geom, prec):
    If the precision is a string, it must be valid Python format string
    (e.g., '%20.7f') -- thus, you should know what you're doing.
    """
    warnings.warn(
        "precision_wkt() is deprecated in favor of the WKTWriter class.",
        RemovedInDjango20Warning, stacklevel=2
    )

    if isinstance(prec, int):
        num_fmt = '%%.%df' % prec
    elif isinstance(prec, six.string_types):
+2 −0
Original line number Diff line number Diff line
@@ -158,6 +158,8 @@ details on these changes.

* The ``javascript_catalog()`` and ``json_catalog()`` views will be removed.

* The ``django.contrib.gis.utils.precision_wkt()`` function will be removed.

.. _deprecation-removed-in-1.10:

1.10
+3 −0
Original line number Diff line number Diff line
@@ -796,6 +796,9 @@ wish to support earlier versions of Django.
  :class:`~django.contrib.gis.geos.MultiPolygon` is deprecated in favor of the
  :attr:`~django.contrib.gis.geos.GEOSGeometry.unary_union` property.

* The ``django.contrib.gis.utils.precision_wkt()`` function is deprecated in
  favor of :class:`~django.contrib.gis.geos.WKTWriter`.

``CommaSeparatedIntegerField`` model field
------------------------------------------

+26 −0
Original line number Diff line number Diff line
from unittest import skipUnless

from django.contrib.gis.geos import HAS_GEOS, GEOSGeometry
from django.contrib.gis.utils.wkt import precision_wkt
from django.test import SimpleTestCase, ignore_warnings
from django.utils.deprecation import RemovedInDjango20Warning


@skipUnless(HAS_GEOS, "Requires GEOS support")
class WktTest(SimpleTestCase):

    @ignore_warnings(category=RemovedInDjango20Warning)
    def test_wkt(self):
        point = GEOSGeometry('POINT (951640.547328465 4219369.26171664)')
        self.assertEqual('POINT(951640.547328 4219369.261717)', precision_wkt(point, 6))
        self.assertEqual('POINT(951640.5473 4219369.2617)', precision_wkt(point, '%.4f'))

        multipoint = GEOSGeometry(
            "SRID=4326;MULTIPOINT((13.18634033203125 14.504356384277344),"
            "(13.207969665527 14.490966796875),(13.177070617675 14.454917907714))"
        )
        self.assertEqual(
            "MULTIPOINT(13.186340332031 14.504356384277,"
            "13.207969665527 14.490966796875,13.177070617675 14.454917907714)",
            precision_wkt(multipoint, 12)
        )