bpo-30870: IDLE: Add configdialog fontlist unittest by mlouielu · Pull Request #2666 · python/cpython · GitHub
Skip to content
5 changes: 3 additions & 2 deletions Lib/idlelib/configdialog.py
19 changes: 10 additions & 9 deletions Lib/idlelib/idle_test/mock_idle.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,24 +6,25 @@
from idlelib.idle_test.mock_tk import Text

class Func:
'''Mock function captures args and returns result set by test.
'''Record call, capture args, return/raise result set by test.

Attributes:
self.called - records call even if no args, kwds passed.
self.result - set by init, returned by call.
self.args - captures positional arguments.
self.kwds - captures keyword arguments.
When mock function is called, set or use attributes:
self.called - increment call number even if no args, kwds passed.
self.args - capture positional arguments.
self.kwds - capture keyword arguments.
self.result - return or raise value set in __init__.

Most common use will probably be to mock methods.
Most common use will probably be to mock instance methods.
Given class instance, can set and delete as instance attribute.
Mock_tk.Var and Mbox_func are special variants of this.
'''
def __init__(self, result=None):
self.called = False
self.called = 0
self.result = result
self.args = None
self.kwds = None
def __call__(self, *args, **kwds):
self.called = True
self.called += 1
self.args = args
self.kwds = kwds
if isinstance(self.result, BaseException):
Expand Down
113 changes: 95 additions & 18 deletions Lib/idlelib/idle_test/test_configdialog.py