summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/custom_lookups/tests.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/tests/custom_lookups/tests.py b/tests/custom_lookups/tests.py
index bdb27a224a..9661aebc49 100644
--- a/tests/custom_lookups/tests.py
+++ b/tests/custom_lookups/tests.py
@@ -240,6 +240,23 @@ class LookupTests(TestCase):
models.DateField._unregister_lookup(YearTransform)
models.DateField._unregister_lookup(YearTransform, custom_transform_name)
+ def test_custom_exact_lookup_none_rhs(self):
+ """
+ __exact=None is transformed to __isnull=True if a custom lookup class
+ with lookup_name != 'exact' is registered as the `exact` lookup.
+ """
+ class CustomExactLookup(models.Lookup):
+ lookup_name = 'somecustomlookup'
+
+ field = Author._meta.get_field('birthdate')
+ OldExactLookup = field.get_lookup('exact')
+ author = Author.objects.create(name='author', birthdate=None)
+ try:
+ type(field).register_lookup(Exactly, 'exact')
+ self.assertEqual(Author.objects.get(birthdate__exact=None), author)
+ finally:
+ type(field).register_lookup(OldExactLookup, 'exact')
+
def test_basic_lookup(self):
a1 = Author.objects.create(name='a1', age=1)
a2 = Author.objects.create(name='a2', age=2)