summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClaude Paroz <claude@2xlibre.net>2014-03-27 22:26:20 +0100
committerTim Graham <timograham@gmail.com>2014-11-03 10:51:23 -0500
commit378f94e39e566c915fe60e01f0ea7e52343513da (patch)
tree964a1278a662af16de79cc4ccf3ff4ea140c1df0
parentd3e71a6daaf6f64e5efb45baf7b35269052d5d96 (diff)
[1.7.x] Confirmed Spatialite 4 support
Backport of e62dea9ad5 from master
-rw-r--r--django/contrib/gis/tests/geoapp/tests.py19
-rw-r--r--docs/ref/contrib/gis/install/geolibs.txt5
2 files changed, 12 insertions, 12 deletions
diff --git a/django/contrib/gis/tests/geoapp/tests.py b/django/contrib/gis/tests/geoapp/tests.py
index 0d43f63eed..95a11cc788 100644
--- a/django/contrib/gis/tests/geoapp/tests.py
+++ b/django/contrib/gis/tests/geoapp/tests.py
@@ -437,8 +437,11 @@ class GeoQuerySetTest(TestCase):
self.assertEqual(c.mpoly.difference(geom), c.difference)
if not spatialite:
self.assertEqual(c.mpoly.intersection(geom), c.intersection)
- self.assertEqual(c.mpoly.sym_difference(geom), c.sym_difference)
- self.assertEqual(c.mpoly.union(geom), c.union)
+ # Ordering might differ in collections
+ self.assertSetEqual(set(g.wkt for g in c.mpoly.sym_difference(geom)),
+ set(g.wkt for g in c.sym_difference))
+ self.assertSetEqual(set(g.wkt for g in c.mpoly.union(geom)),
+ set(g.wkt for g in c.union))
@skipUnless(getattr(connection.ops, 'envelope', False), 'Database does not support envelope operation')
def test_envelope(self):
@@ -781,9 +784,9 @@ class GeoQuerySetTest(TestCase):
def test_unionagg(self):
"Testing the `unionagg` (aggregate union) GeoQuerySet method."
tx = Country.objects.get(name='Texas').mpoly
- # Houston, Dallas -- Oracle has different order.
+ # Houston, Dallas -- Ordering may differ depending on backend or GEOS version.
union1 = fromstr('MULTIPOINT(-96.801611 32.782057,-95.363151 29.763374)')
- union2 = fromstr('MULTIPOINT(-96.801611 32.782057,-95.363151 29.763374)')
+ union2 = fromstr('MULTIPOINT(-95.363151 29.763374,-96.801611 32.782057)')
qs = City.objects.filter(point__within=tx)
self.assertRaises(TypeError, qs.unionagg, 'name')
# Using `field_name` keyword argument in one query and specifying an
@@ -792,12 +795,8 @@ class GeoQuerySetTest(TestCase):
u1 = qs.unionagg(field_name='point')
u2 = qs.order_by('name').unionagg()
tol = 0.00001
- if oracle:
- union = union2
- else:
- union = union1
- self.assertEqual(True, union.equals_exact(u1, tol))
- self.assertEqual(True, union.equals_exact(u2, tol))
+ self.assertEqual(True, union1.equals_exact(u1, tol) or union2.equals_exact(u1, tol))
+ self.assertEqual(True, union1.equals_exact(u2, tol) or union2.equals_exact(u2, tol))
qs = City.objects.filter(name='NotACity')
self.assertEqual(None, qs.unionagg(field_name='point'))
diff --git a/docs/ref/contrib/gis/install/geolibs.txt b/docs/ref/contrib/gis/install/geolibs.txt
index 981a19aebd..2b08e048a0 100644
--- a/docs/ref/contrib/gis/install/geolibs.txt
+++ b/docs/ref/contrib/gis/install/geolibs.txt
@@ -15,7 +15,7 @@ Program Description Required
:ref:`GDAL <ref-gdal>` Geospatial Data Abstraction Library No (but, required for SQLite) 1.10, 1.9, 1.8, 1.7, 1.6
:ref:`GeoIP <ref-geoip>` IP-based geolocation library No 1.4
`PostGIS`__ Spatial extensions for PostgreSQL Yes (PostgreSQL only) 2.1, 2.0, 1.5, 1.4, 1.3
-`SpatiaLite`__ Spatial extensions for SQLite Yes (SQLite only) 3.0, 2.4, 2.3
+`SpatiaLite`__ Spatial extensions for SQLite Yes (SQLite only) 4.1, 4.0, 3.0, 2.4, 2.3
======================== ==================================== ================================ ==========================
..
@@ -37,6 +37,8 @@ Program Description Required
SpatiaLite 2.3.0 2009-04-06
Spatialite 2.4.0 2010-11-14
Spatialite 3.0.0 2011-12-30
+ Spatialite 4.0.0 2012-11-25
+ Spatialite 4.1.0 2013-06-04
.. admonition:: Install GDAL
@@ -299,4 +301,3 @@ file:
.. [#] Specifically, GeoDjango provides support for the `OGR
<http://gdal.org/ogr>`_ library, a component of GDAL.
.. [#] See `GDAL ticket #2382 <http://trac.osgeo.org/gdal/ticket/2382>`_.
-