From cecef94275118dc49a1b0d89d3ca9734e2ec9776 Mon Sep 17 00:00:00 2001 From: Simon Charette Date: Wed, 21 Sep 2016 22:06:09 -0400 Subject: Fixed #27257 -- Fixed builtin text lookups on JSONField keys. Thanks Nick Stefan for the report and Tim for the review. --- tests/postgres_tests/test_json.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'tests/postgres_tests/test_json.py') diff --git a/tests/postgres_tests/test_json.py b/tests/postgres_tests/test_json.py index f306284b7f..78dded31a9 100644 --- a/tests/postgres_tests/test_json.py +++ b/tests/postgres_tests/test_json.py @@ -124,6 +124,7 @@ class TestQuerying(PostgreSQLTestCase): 'k': True, 'l': False, }), + JSONModel.objects.create(field={'foo': 'bar'}), ] def test_exact(self): @@ -237,6 +238,27 @@ class TestQuerying(PostgreSQLTestCase): self.objs[7:9] ) + def test_icontains(self): + self.assertFalse(JSONModel.objects.filter(field__foo__icontains='"bar"').exists()) + + def test_startswith(self): + self.assertTrue(JSONModel.objects.filter(field__foo__startswith='b').exists()) + + def test_istartswith(self): + self.assertTrue(JSONModel.objects.filter(field__foo__istartswith='B').exists()) + + def test_endswith(self): + self.assertTrue(JSONModel.objects.filter(field__foo__endswith='r').exists()) + + def test_iendswith(self): + self.assertTrue(JSONModel.objects.filter(field__foo__iendswith='R').exists()) + + def test_regex(self): + self.assertTrue(JSONModel.objects.filter(field__foo__regex=r'^bar$').exists()) + + def test_iregex(self): + self.assertTrue(JSONModel.objects.filter(field__foo__iregex=r'^bAr$').exists()) + @skipUnlessDBFeature('has_jsonb_datatype') class TestSerialization(PostgreSQLTestCase): -- cgit v1.3