summaryrefslogtreecommitdiff
path: root/tests/postgres_tests/test_json.py
diff options
context:
space:
mode:
authorDmitry Dygalo <dadygalo@gmail.com>2018-02-20 16:47:12 +0100
committerTim Graham <timograham@gmail.com>2018-04-04 10:53:46 -0400
commitc979c0a2b8abca325a549961fd7a17bdc36bcb1f (patch)
treeb6d221918b9c0989cbb3d6dc08cd7ebee08381bf /tests/postgres_tests/test_json.py
parent4fe5d846666d46a5395a5f0ea2845a96b6837a75 (diff)
Fixed #25718 -- Made a JSONField lookup value of None match keys that have a null value.
Diffstat (limited to 'tests/postgres_tests/test_json.py')
-rw-r--r--tests/postgres_tests/test_json.py15
1 files changed, 15 insertions, 0 deletions
diff --git a/tests/postgres_tests/test_json.py b/tests/postgres_tests/test_json.py
index 305278fc6a..2f0b55a292 100644
--- a/tests/postgres_tests/test_json.py
+++ b/tests/postgres_tests/test_json.py
@@ -4,6 +4,7 @@ from decimal import Decimal
from django.core import checks, exceptions, serializers
from django.core.serializers.json import DjangoJSONEncoder
+from django.db.models import Q
from django.forms import CharField, Form, widgets
from django.test.utils import isolate_apps
from django.utils.html import escape
@@ -177,6 +178,20 @@ class TestQuerying(PostgreSQLTestCase):
[self.objs[7], self.objs[8]]
)
+ def test_none_key(self):
+ self.assertSequenceEqual(JSONModel.objects.filter(field__j=None), [self.objs[8]])
+
+ def test_none_key_exclude(self):
+ obj = JSONModel.objects.create(field={'j': 1})
+ self.assertSequenceEqual(JSONModel.objects.exclude(field__j=None), [obj])
+
+ def test_isnull_key_or_none(self):
+ obj = JSONModel.objects.create(field={'a': None})
+ self.assertSequenceEqual(
+ JSONModel.objects.filter(Q(field__a__isnull=True) | Q(field__a=None)),
+ self.objs[:7] + self.objs[9:] + [obj]
+ )
+
def test_contains(self):
self.assertSequenceEqual(
JSONModel.objects.filter(field__contains={'a': 'b'}),