1. import copy
    
  2. 
    
  3. from django.contrib.gis.db.models import GeometryField
    
  4. from django.contrib.gis.db.models.sql import AreaField, DistanceField
    
  5. from django.test import SimpleTestCase
    
  6. 
    
  7. 
    
  8. class FieldsTests(SimpleTestCase):
    
  9.     def test_area_field_deepcopy(self):
    
  10.         field = AreaField(None)
    
  11.         self.assertEqual(copy.deepcopy(field), field)
    
  12. 
    
  13.     def test_distance_field_deepcopy(self):
    
  14.         field = DistanceField(None)
    
  15.         self.assertEqual(copy.deepcopy(field), field)
    
  16. 
    
  17. 
    
  18. class GeometryFieldTests(SimpleTestCase):
    
  19.     def test_deconstruct_empty(self):
    
  20.         field = GeometryField()
    
  21.         *_, kwargs = field.deconstruct()
    
  22.         self.assertEqual(kwargs, {"srid": 4326})
    
  23. 
    
  24.     def test_deconstruct_values(self):
    
  25.         field = GeometryField(
    
  26.             srid=4067,
    
  27.             dim=3,
    
  28.             geography=True,
    
  29.             extent=(
    
  30.                 50199.4814,
    
  31.                 6582464.0358,
    
  32.                 -50000.0,
    
  33.                 761274.6247,
    
  34.                 7799839.8902,
    
  35.                 50000.0,
    
  36.             ),
    
  37.             tolerance=0.01,
    
  38.         )
    
  39.         *_, kwargs = field.deconstruct()
    
  40.         self.assertEqual(
    
  41.             kwargs,
    
  42.             {
    
  43.                 "srid": 4067,
    
  44.                 "dim": 3,
    
  45.                 "geography": True,
    
  46.                 "extent": (
    
  47.                     50199.4814,
    
  48.                     6582464.0358,
    
  49.                     -50000.0,
    
  50.                     761274.6247,
    
  51.                     7799839.8902,
    
  52.                     50000.0,
    
  53.                 ),
    
  54.                 "tolerance": 0.01,
    
  55.             },
    
  56.         )