summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsaeedblanchette <33104967+saeedblanchette@users.noreply.github.com>2021-05-11 04:02:25 +0000
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2021-05-24 07:32:25 +0200
commitd3d95d645fc9f36355d27598475612de43587db1 (patch)
tree67947db7ba00681cde02c9e63dbe79dd9c6c42a4
parentf0a9413bd282cce452a5b7418b28b096af10a027 (diff)
Refs #24121 -- Added __repr__() to Lookup.
-rw-r--r--django/db/models/lookups.py3
-rw-r--r--tests/lookup/test_lookups.py17
2 files changed, 20 insertions, 0 deletions
diff --git a/django/db/models/lookups.py b/django/db/models/lookups.py
index 8d3648b393..defa566f21 100644
--- a/django/db/models/lookups.py
+++ b/django/db/models/lookups.py
@@ -40,6 +40,9 @@ class Lookup:
value = transform(value)
return value
+ def __repr__(self):
+ return f'{self.__class__.__name__}({self.lhs!r}, {self.rhs!r})'
+
def batch_process_rhs(self, compiler, connection, rhs=None):
if rhs is None:
rhs = self.rhs
diff --git a/tests/lookup/test_lookups.py b/tests/lookup/test_lookups.py
index 4d90612048..6dfcf75943 100644
--- a/tests/lookup/test_lookups.py
+++ b/tests/lookup/test_lookups.py
@@ -20,6 +20,23 @@ class LookupTests(SimpleTestCase):
self.assertNotEqual(lookup, Lookup(Value(3), lookup.rhs))
self.assertNotEqual(lookup, CustomLookup(lookup.lhs, lookup.rhs))
+ def test_repr(self):
+ tests = [
+ (Lookup(Value(1), Value('a')), "Lookup(Value(1), Value('a'))"),
+ (
+ YearLookup(
+ Value(datetime(2010, 1, 1, 0, 0, 0)),
+ Value(datetime(2010, 1, 1, 23, 59, 59)),
+ ),
+ 'YearLookup('
+ 'Value(datetime.datetime(2010, 1, 1, 0, 0)), '
+ 'Value(datetime.datetime(2010, 1, 1, 23, 59, 59)))'
+ ),
+ ]
+ for lookup, expected in tests:
+ with self.subTest(lookup=lookup):
+ self.assertEqual(repr(lookup), expected)
+
def test_hash(self):
lookup = Lookup(Value(1), Value(2))
self.assertEqual(hash(lookup), hash(lookup))