summaryrefslogtreecommitdiff
path: root/tests/model_fields
diff options
context:
space:
mode:
Diffstat (limited to 'tests/model_fields')
-rw-r--r--tests/model_fields/test_jsonfield.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/model_fields/test_jsonfield.py b/tests/model_fields/test_jsonfield.py
index 60357d87b2..4a1cc075b4 100644
--- a/tests/model_fields/test_jsonfield.py
+++ b/tests/model_fields/test_jsonfield.py
@@ -103,6 +103,29 @@ class TestMethods(SimpleTestCase):
with self.assertRaisesMessage(TypeError, msg):
KeyTransformTextLookupMixin(transform)
+ def test_get_prep_value(self):
+ class JSONFieldGetPrepValue(models.JSONField):
+ def get_prep_value(self, value):
+ if value is True:
+ return {"value": True}
+ return value
+
+ def noop_adapt_json_value(value, encoder):
+ return value
+
+ field = JSONFieldGetPrepValue()
+ with mock.patch.object(
+ connection.ops, "adapt_json_value", noop_adapt_json_value
+ ):
+ self.assertEqual(
+ field.get_db_prep_value(True, connection, prepared=False),
+ {"value": True},
+ )
+ self.assertIs(
+ field.get_db_prep_value(True, connection, prepared=True), True
+ )
+ self.assertEqual(field.get_db_prep_value(1, connection, prepared=False), 1)
+
class TestValidation(SimpleTestCase):
def test_invalid_encoder(self):