Skip to content

Commit f4b255b

Browse files
committed
PYTHON-4834 Add __repr__ to IndexModel
- Test remaining kwargs
1 parent 036ade2 commit f4b255b

File tree

2 files changed

+19
-14
lines changed

2 files changed

+19
-14
lines changed

pymongo/operations.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -776,7 +776,7 @@ def document(self) -> dict[str, Any]:
776776
def __repr__(self) -> str:
777777
return "%s(%s%s)" % (
778778
self.__class__.__name__,
779-
"" if not self.document.get("key") else "keys=%s" % self.document["key"],
779+
"keys=%s" % self.document["key"],
780780
"".join(
781781
[
782782
", %s=%r" % (key, value)

test/test_collection.py

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2262,19 +2262,24 @@ def test_index_model_repr(self):
22622262
self.assertRepr(IndexModel("hello"))
22632263
self.assertRepr(IndexModel([("hello", DESCENDING), ("world", ASCENDING)]))
22642264
self.assertRepr(IndexModel([("hello", DESCENDING), ("world", ASCENDING)], name="hello_world"))
2265-
self.assertRepr(IndexModel("a", unique=True))
2266-
# self.assertRepr(name
2267-
# self.assertRepr(unique
2268-
# self.assertRepr(background
2269-
# self.assertRepr(sparse
2270-
# self.assertRepr(bucketSize
2271-
# self.assertRepr(min
2272-
# self.assertRepr(max
2273-
# self.assertRepr(expireAfterSeconds
2274-
# self.assertRepr(partialFilterExpression
2275-
# self.assertRepr(collation
2276-
# self.assertRepr(wildcardProjection
2277-
# self.assertRepr(hidden
2265+
2266+
self.assertRepr(IndexModel("name", name="name"))
2267+
self.assertRepr(IndexModel("unique", unique=False))
2268+
self.assertRepr(IndexModel("background", background=True))
2269+
self.assertRepr(IndexModel("sparse", sparse=True))
2270+
self.assertRepr(IndexModel("bucketSize", bucketSize=1))
2271+
self.assertRepr(IndexModel("min", min=1))
2272+
self.assertRepr(IndexModel("max", max=1))
2273+
self.assertRepr(IndexModel("expireAfterSeconds", expireAfterSeconds=1))
2274+
self.assertRepr(IndexModel("partialFilterExpression", partialFilterExpression={"hello": "world"}))
2275+
2276+
from pymongo.collation import Collation
2277+
coll = Collation(locale="en_US")
2278+
self.assertRepr(IndexModel("collation", collation=coll))
2279+
self.assertRepr(IndexModel("wildcardProjection", wildcardProjection={ "$**": 1}))
2280+
self.assertRepr(IndexModel("hidden", hidden=False))
2281+
2282+
self.assertRepr(IndexModel({'hello': 1, 'world': -1}, name='hello_world'))
22782283

22792284

22802285
if __name__ == "__main__":

0 commit comments

Comments
 (0)