summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorSergey Fedoseev <fedoseev.sergey@gmail.com>2015-10-31 08:02:19 +0500
committerClaude Paroz <claude@2xlibre.net>2015-11-02 19:25:53 +0100
commit7127eb287fb08b89a31bc97097a1fb6b08ada463 (patch)
treeb01a227ce7733c6a68744b71e47c9dd2ac065420 /tests
parentb78226cd3d2dd578ac57341e0c55754b31ab66ba (diff)
Fixed #25659 -- Added missing support for MySQL 5.6.1 GIS functions
Added support for ST_Difference/ST_Intersection/ST_SymDifference.
Diffstat (limited to 'tests')
-rw-r--r--tests/gis_tests/geoapp/test_functions.py25
1 files changed, 10 insertions, 15 deletions
diff --git a/tests/gis_tests/geoapp/test_functions.py b/tests/gis_tests/geoapp/test_functions.py
index 745a0dee6f..ff99cc4855 100644
--- a/tests/gis_tests/geoapp/test_functions.py
+++ b/tests/gis_tests/geoapp/test_functions.py
@@ -169,9 +169,9 @@ class GISFunctionsTests(TestCase):
qs = qs.exclude(name='Texas')
for c in qs:
- self.assertEqual(c.mpoly.difference(geom), c.diff)
+ self.assertTrue(c.mpoly.difference(geom).equals(c.diff))
- @skipUnlessDBFeature("has_Difference_function")
+ @skipUnlessDBFeature("has_Difference_function", "has_Transform_function")
def test_difference_mixed_srid(self):
"""Testing with mixed SRID (Country has default 4326)."""
geom = Point(556597.4, 2632018.6, srid=3857) # Spherical mercator
@@ -180,7 +180,7 @@ class GISFunctionsTests(TestCase):
if spatialite:
qs = qs.exclude(name='Texas')
for c in qs:
- self.assertEqual(c.mpoly.difference(geom), c.difference)
+ self.assertTrue(c.mpoly.difference(geom).equals(c.difference))
@skipUnlessDBFeature("has_Envelope_function")
def test_envelope(self):
@@ -218,8 +218,8 @@ class GISFunctionsTests(TestCase):
geom = Point(5, 23, srid=4326)
qs = Country.objects.annotate(inter=functions.Intersection('mpoly', geom))
for c in qs:
- if spatialite:
- # When the intersection is empty, Spatialite returns None
+ if spatialite or mysql:
+ # When the intersection is empty, Spatialite and MySQL return None
expected = None
else:
expected = c.mpoly.intersection(geom)
@@ -376,9 +376,7 @@ class GISFunctionsTests(TestCase):
geom = Point(5, 23, srid=4326)
qs = Country.objects.annotate(sym_difference=functions.SymDifference('mpoly', geom))
for country in qs:
- # Ordering might differ in collections
- self.assertSetEqual(set(g.wkt for g in country.mpoly.sym_difference(geom)),
- set(g.wkt for g in country.sym_difference))
+ self.assertTrue(country.mpoly.sym_difference(geom).equals(country.sym_difference))
@skipUnlessDBFeature("has_Transform_function")
def test_transform(self):
@@ -431,14 +429,11 @@ class GISFunctionsTests(TestCase):
# SpatiaLite).
return
for c in qs:
- self.assertEqual(c.mpoly.difference(geom), c.difference)
- if not spatialite:
+ self.assertTrue(c.mpoly.difference(geom).equals(c.difference))
+ if not (spatialite or mysql):
self.assertEqual(c.mpoly.intersection(geom), c.intersection)
- # 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))
+ self.assertTrue(c.mpoly.sym_difference(geom).equals(c.sym_difference))
+ self.assertTrue(c.mpoly.union(geom).equals(c.union))
@skipUnlessDBFeature("has_Union_function")
def test_union(self):