Fixed #26785 -- Made Oracle return None rather than empty string for empty geometries.

This commit is contained in:
Sergey Fedoseev 2016-06-21 14:08:29 +05:00 committed by Tim Graham
parent d13881bd34
commit ea4665066b
2 changed files with 3 additions and 5 deletions

View File

@ -78,6 +78,7 @@ class BaseSpatialField(Field):
of the spatial reference system of the field. of the spatial reference system of the field.
""" """
description = _("The base GIS field.") description = _("The base GIS field.")
empty_strings_allowed = False
# Geodetic units. # Geodetic units.
geodetic_units = ('decimal degree', 'degree') geodetic_units = ('decimal degree', 'degree')

View File

@ -223,12 +223,9 @@ class GISFunctionsTests(TestCase):
geom = Point(5, 23, srid=4326) geom = Point(5, 23, srid=4326)
qs = Country.objects.annotate(inter=functions.Intersection('mpoly', geom)) qs = Country.objects.annotate(inter=functions.Intersection('mpoly', geom))
for c in qs: for c in qs:
if spatialite or mysql: if spatialite or mysql or oracle:
# When the intersection is empty, Spatialite and MySQL return None # When the intersection is empty, some databases return None.
expected = None expected = None
elif oracle:
# When the intersection is empty, Oracle returns an empty string
expected = ''
else: else:
expected = c.mpoly.intersection(geom) expected = c.mpoly.intersection(geom)
self.assertEqual(c.inter, expected) self.assertEqual(c.inter, expected)