diff options
| author | Dmitry Dygalo <dadygalo@gmail.com> | 2018-02-20 16:47:12 +0100 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2018-04-04 10:53:46 -0400 |
| commit | c979c0a2b8abca325a549961fd7a17bdc36bcb1f (patch) | |
| tree | b6d221918b9c0989cbb3d6dc08cd7ebee08381bf /tests/postgres_tests/test_json.py | |
| parent | 4fe5d846666d46a5395a5f0ea2845a96b6837a75 (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.py | 15 |
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'}), |
