diff options
author | Tim Graham <timograham@gmail.com> | 2017-07-06 13:18:05 -0400 |
---|---|---|
committer | Tim Graham <timograham@gmail.com> | 2017-07-20 16:30:08 -0400 |
commit | 487362fa8f23d41de4db58e7408e66eb36399af0 (patch) | |
tree | 25897a03c885d44a15860f59c121f0b6fab3e4a8 /tests/from_db_value | |
parent | 8d5095d8a33824e02c95ee44d6e5acdb4b39e7ed (diff) | |
download | django-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.py | 11 | ||||
-rw-r--r-- | tests/from_db_value/test_deprecated.py | 22 |
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.' + ) |