summaryrefslogtreecommitdiff
path: root/tests/queries/test_bulk_update.py
diff options
context:
space:
mode:
authorsage <laymonage@gmail.com>2019-06-09 07:56:37 +0700
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2020-05-08 07:23:31 +0200
commit6789ded0a6ab797f0dcdfa6ad5d1cfa46e23abcd (patch)
tree1de598fc92480c64835b60b6ddbb461c3cd2e864 /tests/queries/test_bulk_update.py
parentf97f71f59249f1fbeebe84d4fc858d70fc456f7d (diff)
Fixed #12990, Refs #27694 -- Added JSONField model field.
Thanks to Adam Johnson, Carlton Gibson, Mariusz Felisiak, and Raphael Michel for mentoring this Google Summer of Code 2019 project and everyone else who helped with the patch. Special thanks to Mads Jensen, Nick Pope, and Simon Charette for extensive reviews. Co-authored-by: Mariusz Felisiak <felisiak.mariusz@gmail.com>
Diffstat (limited to 'tests/queries/test_bulk_update.py')
-rw-r--r--tests/queries/test_bulk_update.py17
1 files changed, 14 insertions, 3 deletions
diff --git a/tests/queries/test_bulk_update.py b/tests/queries/test_bulk_update.py
index e2e9a6147a..ec43c86691 100644
--- a/tests/queries/test_bulk_update.py
+++ b/tests/queries/test_bulk_update.py
@@ -3,11 +3,11 @@ import datetime
from django.core.exceptions import FieldDoesNotExist
from django.db.models import F
from django.db.models.functions import Lower
-from django.test import TestCase
+from django.test import TestCase, skipUnlessDBFeature
from .models import (
- Article, CustomDbColumn, CustomPk, Detail, Individual, Member, Note,
- Number, Order, Paragraph, SpecialCategory, Tag, Valid,
+ Article, CustomDbColumn, CustomPk, Detail, Individual, JSONFieldNullable,
+ Member, Note, Number, Order, Paragraph, SpecialCategory, Tag, Valid,
)
@@ -228,3 +228,14 @@ class BulkUpdateTests(TestCase):
article.created = point_in_time
Article.objects.bulk_update(articles, ['created'])
self.assertCountEqual(Article.objects.filter(created=point_in_time), articles)
+
+ @skipUnlessDBFeature('supports_json_field')
+ def test_json_field(self):
+ JSONFieldNullable.objects.bulk_create([
+ JSONFieldNullable(json_field={'a': i}) for i in range(10)
+ ])
+ objs = JSONFieldNullable.objects.all()
+ for obj in objs:
+ obj.json_field = {'c': obj.json_field['a'] + 1}
+ JSONFieldNullable.objects.bulk_update(objs, ['json_field'])
+ self.assertCountEqual(JSONFieldNullable.objects.filter(json_field__has_key='c'), objs)