Browse Source

Fixed deepcopy of AreaField and DistanceField.

Sergey Fedoseev 7 years ago
parent
commit
0ab1dc0a8b
2 changed files with 17 additions and 0 deletions
  1. 2 0
      django/contrib/gis/db/models/sql/conversion.py
  2. 15 0
      tests/gis_tests/test_fields.py

+ 2 - 0
django/contrib/gis/db/models/sql/conversion.py

@@ -11,6 +11,7 @@ from django.db import models
 class AreaField(models.FloatField):
     "Wrapper for Area values."
     def __init__(self, area_att=None):
+        super().__init__()
         self.area_att = area_att
 
     def get_prep_value(self, value):
@@ -40,6 +41,7 @@ class AreaField(models.FloatField):
 class DistanceField(models.FloatField):
     "Wrapper for Distance values."
     def __init__(self, distance_att=None):
+        super().__init__()
         self.distance_att = distance_att
 
     def get_prep_value(self, value):

+ 15 - 0
tests/gis_tests/test_fields.py

@@ -0,0 +1,15 @@
+import copy
+
+from django.contrib.gis.db.models.sql import AreaField, DistanceField
+from django.test import SimpleTestCase
+
+
+class FieldsTests(SimpleTestCase):
+
+    def test_area_field_deepcopy(self):
+        field = AreaField()
+        self.assertEqual(copy.deepcopy(field), field)
+
+    def test_distance_field_deepcopy(self):
+        field = DistanceField()
+        self.assertEqual(copy.deepcopy(field), field)