diff options
| author | Tim Graham <timograham@gmail.com> | 2024-12-06 20:44:35 -0500 |
|---|---|---|
| committer | Sarah Boyce <42296566+sarahboyce@users.noreply.github.com> | 2024-12-09 09:46:06 +0100 |
| commit | 1860a1afc9ac20750f932e8e0a94b32d096f2848 (patch) | |
| tree | a8746f34c7d47cebddf99e18e962f57b78a3f290 /tests/model_fields | |
| parent | b0b30247204aea8096b3c5456d71c2df9bc4f4ae (diff) | |
Fixed #35982 -- Made DecimalField.get_db_prep_value() call DatabaseOperations.adapt_decimalfield_value().
Regression in e9814029f570bd0866dc859147bca90340bcc913.
Thanks Simon Charette for advice and review.
Diffstat (limited to 'tests/model_fields')
| -rw-r--r-- | tests/model_fields/test_decimalfield.py | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/tests/model_fields/test_decimalfield.py b/tests/model_fields/test_decimalfield.py index 588bb64a3a..17f59674e8 100644 --- a/tests/model_fields/test_decimalfield.py +++ b/tests/model_fields/test_decimalfield.py @@ -1,9 +1,10 @@ import math from decimal import Decimal +from unittest import mock from django.core import validators from django.core.exceptions import ValidationError -from django.db import models +from django.db import connection, models from django.test import TestCase from .models import BigD, Foo @@ -48,6 +49,20 @@ class DecimalFieldTests(TestCase): self.assertIsNone(f.get_prep_value(None)) self.assertEqual(f.get_prep_value("2.4"), Decimal("2.4")) + def test_get_db_prep_value(self): + """ + DecimalField.get_db_prep_value() must call + DatabaseOperations.adapt_decimalfield_value(). + """ + f = models.DecimalField(max_digits=5, decimal_places=1) + # None of the built-in database backends implement + # adapt_decimalfield_value(), so this must be confirmed with mocking. + with mock.patch.object( + connection.ops.__class__, "adapt_decimalfield_value" + ) as adapt_decimalfield_value: + f.get_db_prep_value("2.4", connection) + adapt_decimalfield_value.assert_called_with(Decimal("2.4"), 5, 1) + def test_filter_with_strings(self): """ Should be able to filter decimal fields using strings (#8023). |
