Refs #28077 -- Added opclasses to Index.__repr__().

This also removes unnecessary commas between attributes.
This commit is contained in:
Mariusz Felisiak 2020-06-17 10:32:43 +02:00 committed by GitHub
parent 1621f06051
commit 82da72b748
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 5 deletions

View File

@ -123,10 +123,11 @@ class Index:
self.name = 'D%s' % self.name[1:] self.name = 'D%s' % self.name[1:]
def __repr__(self): def __repr__(self):
return "<%s: fields='%s'%s%s>" % ( return "<%s: fields='%s'%s%s%s>" % (
self.__class__.__name__, ', '.join(self.fields), self.__class__.__name__, ', '.join(self.fields),
'' if self.condition is None else ', condition=%s' % self.condition, '' if self.condition is None else ' condition=%s' % self.condition,
'' if not self.include else ", include='%s'" % ', '.join(self.include), '' if not self.include else " include='%s'" % ', '.join(self.include),
'' if not self.opclasses else " opclasses='%s'" % ', '.join(self.opclasses),
) )
def __eq__(self, other): def __eq__(self, other):

View File

@ -22,12 +22,22 @@ class SimpleIndexesTests(SimpleTestCase):
name='include_idx', name='include_idx',
include=['author', 'pages'], include=['author', 'pages'],
) )
opclasses_index = models.Index(
fields=['headline', 'body'],
name='opclasses_idx',
opclasses=['varchar_pattern_ops', 'text_pattern_ops'],
)
self.assertEqual(repr(index), "<Index: fields='title'>") self.assertEqual(repr(index), "<Index: fields='title'>")
self.assertEqual(repr(multi_col_index), "<Index: fields='title, author'>") self.assertEqual(repr(multi_col_index), "<Index: fields='title, author'>")
self.assertEqual(repr(partial_index), "<Index: fields='title', condition=(AND: ('pages__gt', 400))>") self.assertEqual(repr(partial_index), "<Index: fields='title' condition=(AND: ('pages__gt', 400))>")
self.assertEqual( self.assertEqual(
repr(covering_index), repr(covering_index),
"<Index: fields='title', include='author, pages'>", "<Index: fields='title' include='author, pages'>",
)
self.assertEqual(
repr(opclasses_index),
"<Index: fields='headline, body' "
"opclasses='varchar_pattern_ops, text_pattern_ops'>",
) )
def test_eq(self): def test_eq(self):