summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Fedoseev <fedoseev.sergey@gmail.com>2015-11-03 00:35:50 +0500
committerClaude Paroz <claude@2xlibre.net>2015-11-02 22:42:10 +0100
commit306efc8e454cec9e522fda6528313c689fdf4dfd (patch)
tree3dd8cccbd9e0a889c179418d359c0a5149725e7d
parent51e71a6e59f7bf58abac6489f560eb437cdb4949 (diff)
[1.9.x] Fixed #25661 -- Fixed checking number of points during list assignment for `LinearRing`.
Backport of 1b598b4b4 from master.
-rw-r--r--django/contrib/gis/geos/linestring.py2
-rw-r--r--tests/gis_tests/geos_tests/test_geos.py32
2 files changed, 33 insertions, 1 deletions
diff --git a/django/contrib/gis/geos/linestring.py b/django/contrib/gis/geos/linestring.py
index f1c26af72e..df2a8145c7 100644
--- a/django/contrib/gis/geos/linestring.py
+++ b/django/contrib/gis/geos/linestring.py
@@ -167,5 +167,5 @@ class LineString(ProjectInterpolateMixin, GEOSGeometry):
# LinearRings are LineStrings used within Polygons.
class LinearRing(LineString):
- _minLength = 4
+ _minlength = 4
_init_func = capi.create_linearring
diff --git a/tests/gis_tests/geos_tests/test_geos.py b/tests/gis_tests/geos_tests/test_geos.py
index 90d34bbad7..702a0465b2 100644
--- a/tests/gis_tests/geos_tests/test_geos.py
+++ b/tests/gis_tests/geos_tests/test_geos.py
@@ -736,6 +736,38 @@ class GEOSTest(unittest.TestCase, TestDataMixin):
# self.assertEqual((3.14, 2.71), mpoly[0].shell[0])
# del mpoly
+ def test_point_list_assignment(self):
+ p = Point(0, 0)
+
+ p[:] = (1, 2, 3)
+ self.assertEqual(p, Point(1, 2, 3))
+
+ p[:] = (1, 2)
+ self.assertEqual(p.wkt, Point(1, 2))
+
+ with self.assertRaises(ValueError):
+ p[:] = (1,)
+ with self.assertRaises(ValueError):
+ p[:] = (1, 2, 3, 4, 5)
+
+ def test_linestring_list_assignment(self):
+ ls = LineString((0, 0), (1, 1))
+
+ ls[:] = ((0, 0), (1, 1), (2, 2))
+ self.assertEqual(ls, LineString((0, 0), (1, 1), (2, 2)))
+
+ with self.assertRaises(ValueError):
+ ls[:] = (1,)
+
+ def test_linearring_list_assignment(self):
+ ls = LinearRing((0, 0), (0, 1), (1, 1), (0, 0))
+
+ ls[:] = ((0, 0), (0, 1), (1, 1), (1, 0), (0, 0))
+ self.assertEqual(ls, LinearRing((0, 0), (0, 1), (1, 1), (1, 0), (0, 0)))
+
+ with self.assertRaises(ValueError):
+ ls[:] = ((0, 0), (1, 1), (2, 2))
+
def test_threed(self):
"Testing three-dimensional geometries."
# Testing a 3D Point