From 5d28fef8f9329e440ee67cefc900dbf89f4c524c Mon Sep 17 00:00:00 2001 From: Sergey Fedoseev Date: Fri, 16 Dec 2016 08:36:16 +0500 Subject: Made NumPoints raise TypeError on MySQL when it's used on fields besides LineStringField. --- tests/gis_tests/geoapp/test_functions.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'tests') diff --git a/tests/gis_tests/geoapp/test_functions.py b/tests/gis_tests/geoapp/test_functions.py index 023a6a087f..bbf1fd1144 100644 --- a/tests/gis_tests/geoapp/test_functions.py +++ b/tests/gis_tests/geoapp/test_functions.py @@ -304,11 +304,14 @@ class GISFunctionsTests(TestCase): Track.objects.create(name='Foo', line=LineString(coords)) qs = Track.objects.annotate(num_points=functions.NumPoints('line')) self.assertEqual(qs.first().num_points, 2) - if spatialite or mysql: - # SpatiaLite and MySQL can only count points on LineStrings + mpoly_qs = Country.objects.annotate(num_points=functions.NumPoints('mpoly')) + if not connection.features.supports_num_points_poly: + msg = 'NumPoints can only operate on LineString content on this database.' + with self.assertRaisesMessage(TypeError, msg): + list(mpoly_qs) return - for c in Country.objects.annotate(num_points=functions.NumPoints('mpoly')): + for c in mpoly_qs: self.assertEqual(c.mpoly.num_points, c.num_points) if not oracle: -- cgit v1.3