@@ -2253,6 +2253,35 @@ def afind(*args, **kwargs):
2253
2253
for helper , args in helpers :
2254
2254
helper (* args , let = {}) # type: ignore
2255
2255
2256
+ def assertRepr (self , obj ):
2257
+ new_obj = eval (repr (obj ))
2258
+ self .assertEqual (type (new_obj ), type (obj ))
2259
+ self .assertEqual (repr (new_obj ), repr (obj ))
2260
+
2261
+ def test_index_model_repr (self ):
2262
+ self .assertRepr (IndexModel ("hello" ))
2263
+ self .assertRepr (IndexModel ([("hello" , DESCENDING ), ("world" , ASCENDING )]))
2264
+ self .assertRepr (IndexModel ([("hello" , DESCENDING ), ("world" , ASCENDING )], name = "hello_world" ))
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 .assertEqual (repr (IndexModel ("hello" )), "IndexModel({'hello': 1}, name='hello_1')" )
2283
+ self .assertEqual (repr (IndexModel ({'hello' : 1 , 'world' : - 1 })), "IndexModel({'hello': 1, 'world': -1}, name='hello_1_world_-1')" )
2284
+
2256
2285
2257
2286
if __name__ == "__main__" :
2258
2287
unittest .main ()
0 commit comments