summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorMelvyn Sopacua <m.r.sopacua@gmail.com>2018-06-19 14:21:39 +0200
committerTim Graham <timograham@gmail.com>2018-07-27 16:38:28 -0400
commite7a56eb4f0cc1cef6c3e9e289c0f13071a534370 (patch)
tree9420ef4c69d102fef9a2b7f991a3df8c8d900da6 /tests
parentc72dde41e603093ab0bb12fa24fa69cfda0d35f9 (diff)
Fixed #28659 -- Fixed LayerMapping crash with null geometry and unique.
Diffstat (limited to 'tests')
-rw-r--r--tests/gis_tests/layermap/models.py2
-rw-r--r--tests/gis_tests/layermap/tests.py11
2 files changed, 12 insertions, 1 deletions
diff --git a/tests/gis_tests/layermap/models.py b/tests/gis_tests/layermap/models.py
index 9b05056f4e..de1dd6c944 100644
--- a/tests/gis_tests/layermap/models.py
+++ b/tests/gis_tests/layermap/models.py
@@ -17,7 +17,7 @@ class State(NamedModel):
class County(NamedModel):
state = models.ForeignKey(State, models.CASCADE)
- mpoly = models.MultiPolygonField(srid=4269) # Multipolygon in NAD83
+ mpoly = models.MultiPolygonField(srid=4269, null=True) # Multipolygon in NAD83
class CountyFeat(NamedModel):
diff --git a/tests/gis_tests/layermap/tests.py b/tests/gis_tests/layermap/tests.py
index 2406533e66..a1b288eafa 100644
--- a/tests/gis_tests/layermap/tests.py
+++ b/tests/gis_tests/layermap/tests.py
@@ -310,6 +310,17 @@ class LayerMapTest(TestCase):
self.assertEqual(City.objects.count(), 1)
self.assertEqual(City.objects.all()[0].name, "Zürich")
+ def test_null_geom_with_unique(self):
+ """LayerMapping may be created with a unique and a null geometry."""
+ State.objects.bulk_create([State(name='Colorado'), State(name='Hawaii'), State(name='Texas')])
+ hw = State.objects.get(name='Hawaii')
+ hu = County.objects.create(name='Honolulu', state=hw, mpoly=None)
+ lm = LayerMapping(County, co_shp, co_mapping, transform=False, unique='name')
+ lm.save(silent=True, strict=True)
+ hu.refresh_from_db()
+ self.assertIsNotNone(hu.mpoly)
+ self.assertEqual(hu.mpoly.ogr.num_coords, 449)
+
class OtherRouter:
def db_for_read(self, model, **hints):