diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/queries/test_bulk_update.py | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/tests/queries/test_bulk_update.py b/tests/queries/test_bulk_update.py index 9fa9c3b9b8..aa2d185800 100644 --- a/tests/queries/test_bulk_update.py +++ b/tests/queries/test_bulk_update.py @@ -2,7 +2,7 @@ import datetime from django.core.exceptions import FieldDoesNotExist from django.db.models import F -from django.db.models.functions import Lower +from django.db.models.functions import Coalesce, Lower from django.db.utils import IntegrityError from django.test import TestCase, override_settings, skipUnlessDBFeature @@ -289,6 +289,21 @@ class BulkUpdateTests(TestCase): JSONFieldNullable.objects.filter(json_field__has_key="c"), objs ) + @skipUnlessDBFeature("supports_json_field") + def test_json_field_sql_null(self): + obj = JSONFieldNullable.objects.create(json_field={}) + test_cases = [ + ("direct_none_assignment", None), + ("expression_none_assignment", Coalesce(None, None)), + ] + for label, value in test_cases: + with self.subTest(case=label): + obj.json_field = value + JSONFieldNullable.objects.bulk_update([obj], fields=["json_field"]) + obj.refresh_from_db() + sql_null_qs = JSONFieldNullable.objects.filter(json_field__isnull=True) + self.assertSequenceEqual(sql_null_qs, [obj]) + def test_nullable_fk_after_related_save(self): parent = RelatedObject.objects.create() child = SingleObject() |
