@@ -298,6 +298,39 @@ def test_sanitize_sequence():
298
298
assert k == cbook .sanitize_sequence (k )
299
299
300
300
301
+ def test_define_aliases ():
302
+ @cbook ._define_aliases ({'prop' : ['alias1' , 'alias2' ]})
303
+ class NoGetter :
304
+ def set_prop (self ):
305
+ pass
306
+
307
+ @cbook ._define_aliases ({'prop' : ['alias1' , 'alias2' ]})
308
+ class NoSetter :
309
+ def get_prop (self ):
310
+ pass
311
+
312
+ assert getattr (NoGetter , 'get_alias1' , None ) is None
313
+ assert getattr (NoGetter , 'set_alias1' , None ) is not None
314
+ assert getattr (NoGetter , 'get_alias2' , None ) is None
315
+ assert getattr (NoGetter , 'set_alias2' , None ) is not None
316
+ assert NoGetter ._alias_map == {'prop' : ['alias1' , 'alias2' ]}
317
+
318
+ assert getattr (NoSetter , 'get_alias1' , None ) is not None
319
+ assert getattr (NoSetter , 'set_alias1' , None ) is None
320
+ assert getattr (NoSetter , 'get_alias2' , None ) is not None
321
+ assert getattr (NoSetter , 'set_alias2' , None ) is None
322
+ assert NoSetter ._alias_map == {'prop' : ['alias1' , 'alias2' ]}
323
+
324
+
325
+ def test_define_aliases_invalid ():
326
+ class Invalid :
327
+ pass
328
+
329
+ with pytest .raises (ValueError ,
330
+ match = "Neither getter nor setter exists for 'prop'" ):
331
+ cbook ._define_aliases ({'prop' : ['alias1' , 'alias2' ]})(Invalid )
332
+
333
+
301
334
fail_mapping = (
302
335
({'a' : 1 }, {'forbidden' : ('a' )}),
303
336
({'a' : 1 }, {'required' : ('b' )}),
0 commit comments