Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 687906e

Browse files
committed
Add some tests for cbook._define_aliases.
1 parent 2e82a38 commit 687906e

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed

lib/matplotlib/tests/test_cbook.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -298,6 +298,39 @@ def test_sanitize_sequence():
298298
assert k == cbook.sanitize_sequence(k)
299299

300300

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+
301334
fail_mapping = (
302335
({'a': 1}, {'forbidden': ('a')}),
303336
({'a': 1}, {'required': ('b')}),

0 commit comments

Comments
 (0)