Refs #24121 -- Improved Value.__repr__().
This commit is contained in:
parent
3f6d4e22f8
commit
f0a9413bd2
|
@ -743,7 +743,7 @@ class Value(SQLiteNumericMixin, Expression):
|
|||
self.value = value
|
||||
|
||||
def __repr__(self):
|
||||
return "{}({})".format(self.__class__.__name__, self.value)
|
||||
return f'{self.__class__.__name__}({self.value!r})'
|
||||
|
||||
def as_sql(self, compiler, connection):
|
||||
connection.ops.check_expression_support(self)
|
||||
|
|
|
@ -1755,6 +1755,22 @@ class ValueTests(TestCase):
|
|||
self.assertEqual(len(kwargs), 1)
|
||||
self.assertEqual(kwargs['output_field'].deconstruct(), CharField().deconstruct())
|
||||
|
||||
def test_repr(self):
|
||||
tests = [
|
||||
(None, 'Value(None)'),
|
||||
('str', "Value('str')"),
|
||||
(True, 'Value(True)'),
|
||||
(42, 'Value(42)'),
|
||||
(
|
||||
datetime.datetime(2019, 5, 15),
|
||||
'Value(datetime.datetime(2019, 5, 15, 0, 0))',
|
||||
),
|
||||
(Decimal('3.14'), "Value(Decimal('3.14'))"),
|
||||
]
|
||||
for value, expected in tests:
|
||||
with self.subTest(value=value):
|
||||
self.assertEqual(repr(Value(value)), expected)
|
||||
|
||||
def test_equal(self):
|
||||
value = Value('name')
|
||||
self.assertEqual(value, Value('name'))
|
||||
|
@ -1880,7 +1896,7 @@ class ReprTests(SimpleTestCase):
|
|||
)
|
||||
self.assertEqual(
|
||||
repr(When(Q(age__gte=18), then=Value('legal'))),
|
||||
"<When: WHEN <Q: (AND: ('age__gte', 18))> THEN Value(legal)>"
|
||||
"<When: WHEN <Q: (AND: ('age__gte', 18))> THEN Value('legal')>"
|
||||
)
|
||||
self.assertEqual(repr(Col('alias', 'field')), "Col(alias, field)")
|
||||
self.assertEqual(repr(F('published')), "F(published)")
|
||||
|
|
|
@ -527,26 +527,26 @@ class SearchVectorIndexTests(PostgreSQLTestCase):
|
|||
class SearchQueryTests(PostgreSQLSimpleTestCase):
|
||||
def test_str(self):
|
||||
tests = (
|
||||
(~SearchQuery('a'), '~SearchQuery(Value(a))'),
|
||||
(~SearchQuery('a'), "~SearchQuery(Value('a'))"),
|
||||
(
|
||||
(SearchQuery('a') | SearchQuery('b')) & (SearchQuery('c') | SearchQuery('d')),
|
||||
'((SearchQuery(Value(a)) || SearchQuery(Value(b))) && '
|
||||
'(SearchQuery(Value(c)) || SearchQuery(Value(d))))',
|
||||
"((SearchQuery(Value('a')) || SearchQuery(Value('b'))) && "
|
||||
"(SearchQuery(Value('c')) || SearchQuery(Value('d'))))",
|
||||
),
|
||||
(
|
||||
SearchQuery('a') & (SearchQuery('b') | SearchQuery('c')),
|
||||
'(SearchQuery(Value(a)) && (SearchQuery(Value(b)) || '
|
||||
'SearchQuery(Value(c))))',
|
||||
"(SearchQuery(Value('a')) && (SearchQuery(Value('b')) || "
|
||||
"SearchQuery(Value('c'))))",
|
||||
),
|
||||
(
|
||||
(SearchQuery('a') | SearchQuery('b')) & SearchQuery('c'),
|
||||
'((SearchQuery(Value(a)) || SearchQuery(Value(b))) && '
|
||||
'SearchQuery(Value(c)))'
|
||||
"((SearchQuery(Value('a')) || SearchQuery(Value('b'))) && "
|
||||
"SearchQuery(Value('c')))"
|
||||
),
|
||||
(
|
||||
SearchQuery('a') & (SearchQuery('b') & (SearchQuery('c') | SearchQuery('d'))),
|
||||
'(SearchQuery(Value(a)) && (SearchQuery(Value(b)) && '
|
||||
'(SearchQuery(Value(c)) || SearchQuery(Value(d)))))',
|
||||
"(SearchQuery(Value('a')) && (SearchQuery(Value('b')) && "
|
||||
"(SearchQuery(Value('c')) || SearchQuery(Value('d')))))",
|
||||
),
|
||||
)
|
||||
for query, expected_str in tests:
|
||||
|
|
Loading…
Reference in New Issue