summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorSergey Fedoseev <fedoseev.sergey@gmail.com>2017-07-30 22:00:00 +0500
committerTim Graham <timograham@gmail.com>2017-07-31 15:34:07 -0400
commit58da81a5a372a69f0bac801c412b57f3cce5f188 (patch)
tree38964d5eb90f172feedb5cab3f4c6ac424b69e74 /tests
parent6155bc4a51d44afa096c4c00766cbfb9ba9d660c (diff)
Fixed #27985 -- Fixed query for __exact=value when get_prep_value() converts value to None.
Also fixed crash of .filter(field__transform=None).
Diffstat (limited to 'tests')
-rw-r--r--tests/lookup/models.py3
-rw-r--r--tests/lookup/tests.py10
2 files changed, 12 insertions, 1 deletions
diff --git a/tests/lookup/models.py b/tests/lookup/models.py
index 1c7ea799a6..d58d863885 100644
--- a/tests/lookup/models.py
+++ b/tests/lookup/models.py
@@ -44,7 +44,8 @@ class Tag(models.Model):
class NulledTextField(models.TextField):
- pass
+ def get_prep_value(self, value):
+ return None if value == '' else value
@NulledTextField.register_lookup
diff --git a/tests/lookup/tests.py b/tests/lookup/tests.py
index 37e98f43e2..7b08c778df 100644
--- a/tests/lookup/tests.py
+++ b/tests/lookup/tests.py
@@ -846,3 +846,13 @@ class LookupTests(TestCase):
self.assertFalse(Season.objects.filter(nulled_text_field__isnull=True))
self.assertTrue(Season.objects.filter(nulled_text_field__nulled__isnull=True))
self.assertTrue(Season.objects.filter(nulled_text_field__nulled__exact=None))
+ self.assertTrue(Season.objects.filter(nulled_text_field__nulled=None))
+
+ def test_custom_field_none_rhs(self):
+ """
+ __exact=value is transformed to __isnull=True if Field.get_prep_value()
+ converts value to None.
+ """
+ season = Season.objects.create(year=2012, nulled_text_field=None)
+ self.assertTrue(Season.objects.filter(pk=season.pk, nulled_text_field__isnull=True))
+ self.assertTrue(Season.objects.filter(pk=season.pk, nulled_text_field=''))