summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/expressions/tests.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/tests/expressions/tests.py b/tests/expressions/tests.py
index 89601de85b..a06fbc6b95 100644
--- a/tests/expressions/tests.py
+++ b/tests/expressions/tests.py
@@ -29,6 +29,7 @@ from django.db.models import (
FloatField,
Func,
IntegerField,
+ JSONField,
Max,
Min,
Model,
@@ -81,6 +82,7 @@ from .models import (
Company,
Employee,
Experiment,
+ JSONFieldModel,
Manager,
Number,
RemoteEmployee,
@@ -365,6 +367,21 @@ class BasicExpressionsTests(TestCase):
Number.objects.all(), [None, None], lambda n: n.float, ordered=False
)
+ @skipUnlessDBFeature("supports_json_field")
+ def test_update_jsonfield_case_when_key_is_null(self):
+ obj = JSONFieldModel.objects.create(data={"key": None})
+ updated = JSONFieldModel.objects.update(
+ data=Case(
+ When(
+ data__key=Value(None, JSONField()),
+ then=Value({"key": "something"}, JSONField()),
+ ),
+ )
+ )
+ self.assertEqual(updated, 1)
+ obj.refresh_from_db()
+ self.assertEqual(obj.data, {"key": "something"})
+
def test_filter_with_join(self):
# F Expressions can also span joins
Company.objects.update(point_of_contact=F("ceo"))