summaryrefslogtreecommitdiff
path: root/tests/from_db_value
diff options
context:
space:
mode:
authorTim Graham <timograham@gmail.com>2017-07-06 13:18:05 -0400
committerTim Graham <timograham@gmail.com>2017-07-20 16:30:08 -0400
commit487362fa8f23d41de4db58e7408e66eb36399af0 (patch)
tree25897a03c885d44a15860f59c121f0b6fab3e4a8 /tests/from_db_value
parent8d5095d8a33824e02c95ee44d6e5acdb4b39e7ed (diff)
downloaddjango-487362fa8f23d41de4db58e7408e66eb36399af0.tar.gz
Fixed #28370 -- Deprecated the context arg of Field.from_db_value() and Expression.convert_value().
Unused since a0d166306fbdc41f49e6fadf4ec84b17eb147daa.
Diffstat (limited to 'tests/from_db_value')
-rw-r--r--tests/from_db_value/models.py11
-rw-r--r--tests/from_db_value/test_deprecated.py22
2 files changed, 32 insertions, 1 deletions
diff --git a/tests/from_db_value/models.py b/tests/from_db_value/models.py
index 2f2304ff0a..3968a193d6 100644
--- a/tests/from_db_value/models.py
+++ b/tests/from_db_value/models.py
@@ -17,7 +17,7 @@ class CashField(models.DecimalField):
kwargs['decimal_places'] = 2
super().__init__(**kwargs)
- def from_db_value(self, value, expression, connection, context):
+ def from_db_value(self, value, expression, connection):
cash = Cash(value)
cash.vendor = connection.vendor
return cash
@@ -28,3 +28,12 @@ class CashModel(models.Model):
def __str__(self):
return str(self.cash)
+
+
+class CashFieldDeprecated(CashField):
+ def from_db_value(self, value, expression, connection, context):
+ return super().from_db_value(value, expression, connection)
+
+
+class CashModelDeprecated(models.Model):
+ cash = CashFieldDeprecated()
diff --git a/tests/from_db_value/test_deprecated.py b/tests/from_db_value/test_deprecated.py
new file mode 100644
index 0000000000..f0e7ed92b7
--- /dev/null
+++ b/tests/from_db_value/test_deprecated.py
@@ -0,0 +1,22 @@
+import warnings
+
+from django.test import TestCase
+
+from .models import Cash, CashModelDeprecated
+
+
+class FromDBValueDeprecationTests(TestCase):
+
+ def test_deprecation(self):
+ CashModelDeprecated.objects.create(cash='12.50')
+ with warnings.catch_warnings(record=True) as warns:
+ warnings.simplefilter('always')
+ instance = CashModelDeprecated.objects.get()
+ self.assertIsInstance(instance.cash, Cash)
+ self.assertEqual(len(warns), 1)
+ msg = str(warns[0].message)
+ self.assertEqual(
+ msg,
+ 'Remove the context parameter from CashFieldDeprecated.from_db_value(). '
+ 'Support for it will be removed in Django 3.0.'
+ )