mirror of
https://github.com/django/django.git
synced 2025-10-25 22:56:12 +00:00
Fixed #36058 -- Refactored SpatialRefSysMixin.srs to use cached_property.
Replaced manual caching complexity with cached_property for efficiency. Enhanced error handling with distinct messages for WKT and PROJ.4. Thanks to Sarah Boyce for the suggestions.
This commit is contained in:
committed by
Sarah Boyce
parent
5f30fd2358
commit
8ff1399f06
@@ -1,5 +1,6 @@
|
||||
import re
|
||||
|
||||
from django.contrib.gis.db.backends.base.models import SpatialRefSysMixin
|
||||
from django.db import connection
|
||||
from django.test import TestCase, skipUnlessDBFeature
|
||||
from django.utils.functional import cached_property
|
||||
@@ -147,3 +148,17 @@ class SpatialRefSysTest(TestCase):
|
||||
self.assertTrue(
|
||||
self.SpatialRefSys.get_spheroid(srs.wkt).startswith("SPHEROID[")
|
||||
)
|
||||
|
||||
def test_srs_with_invalid_wkt_and_proj4(self):
|
||||
class MockSpatialRefSys(SpatialRefSysMixin):
|
||||
def __init__(self, wkt=None, proj4text=None):
|
||||
self.wkt = wkt
|
||||
self.proj4text = proj4text
|
||||
|
||||
with self.assertRaisesMessage(
|
||||
Exception,
|
||||
"Could not get OSR SpatialReference.\n"
|
||||
"Error for WKT 'INVALID_WKT': Corrupt data.\n"
|
||||
"Error for PROJ.4 '+proj=invalid': Corrupt data.",
|
||||
):
|
||||
MockSpatialRefSys(wkt="INVALID_WKT", proj4text="+proj=invalid").srs
|
||||
|
||||
Reference in New Issue
Block a user