Skip to content

Commit 61ff8b4

Browse files
committed
Add test of subclassing with cbook._define_aliases.
1 parent 687906e commit 61ff8b4

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

lib/matplotlib/tests/test_cbook.py

+36
Original file line numberDiff line numberDiff line change
@@ -331,6 +331,42 @@ class Invalid:
331331
cbook._define_aliases({'prop': ['alias1', 'alias2']})(Invalid)
332332

333333

334+
def test_define_aliases_subclass():
335+
@cbook._define_aliases({'prop': ['alias']})
336+
class Base:
337+
def __init__(self):
338+
self.call_count = {'Base:set_prop': 0}
339+
340+
def set_prop(self):
341+
self.call_count['Base:set_prop'] += 1
342+
343+
class Derived(Base):
344+
def __init__(self):
345+
super().__init__()
346+
self.call_count['Derived:set_prop'] = 0
347+
348+
def set_prop(self):
349+
self.call_count['Derived:set_prop'] += 1
350+
351+
b = Base()
352+
b.set_prop()
353+
assert b.call_count['Base:set_prop'] == 1
354+
b.set_alias()
355+
assert b.call_count['Base:set_prop'] == 2
356+
357+
d = Derived()
358+
d.set_prop()
359+
assert d.call_count['Base:set_prop'] == 0
360+
assert d.call_count['Derived:set_prop'] == 1
361+
d.set_alias()
362+
assert d.call_count['Base:set_prop'] == 0
363+
assert d.call_count['Derived:set_prop'] == 2
364+
365+
Base.set_alias(d)
366+
assert d.call_count['Base:set_prop'] == 1
367+
assert d.call_count['Derived:set_prop'] == 2
368+
369+
334370
fail_mapping = (
335371
({'a': 1}, {'forbidden': ('a')}),
336372
({'a': 1}, {'required': ('b')}),

0 commit comments

Comments
 (0)