This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: IDLE - Test WidgetRedirector
Type: enhancement Stage: resolved
Components: Extension Modules Versions: Python 3.4, Python 3.5, Python 2.7
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: terry.reedy Nosy List: Saimadhav.Heblikar, jesstess, python-dev, taleinat, terry.reedy
Priority: normal Keywords: patch

Created on 2014-07-08 14:37 by Saimadhav.Heblikar, last changed 2022-04-11 14:58 by admin. This issue is now closed.

Files
File name Uploaded Description Edit
test-widgetredir-34.diff Saimadhav.Heblikar, 2014-07-08 14:37 review
test-redir-21940-34.diff terry.reedy, 2014-07-10 07:58 review
Messages (4)
msg222563 - (view) Author: Saimadhav Heblikar (Saimadhav.Heblikar) * Date: 2014-07-08 14:37
Attached is unittest for idlelib.WidgetRedirector
2.7 version will be uploaded once this is OK.
msg222649 - (view) Author: Roundup Robot (python-dev) (Python triager) Date: 2014-07-10 05:17
New changeset 5af194064f96 by Terry Jan Reedy in branch '2.7':
Issue #21940: add docstrings to idlelib.WidgetRedirector.
http://hg.python.org/cpython/rev/5af194064f96

New changeset 220d5fdbe22e by Terry Jan Reedy in branch '3.4':
Issue #21940: add docstrings to idlelib.WidgetRedirector.
http://hg.python.org/cpython/rev/220d5fdbe22e
msg222653 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2014-07-10 07:58
Attached is the 3.4 code I plan to commit after a trivial 2.7 backport. 

In the existing htest, 'global previous_tcl_fcn' is unnecessary because of Python's late binding of function locals. No forward definitions are needed. Already deleted in the first patch.

Adding this test:
    def test_unregister_no_attribute(self):
        del self.text.insert
        self.assertEqual(self.redir.unregister('insert'), self.func)
revealed that this code in .unregister
            if hasattr(self.widget, operation):
                delattr(self.widget, operation)
is buggy because hasattr looks up the class tree for an attribute whereas delattr does not. Hence the former can be true, and will be after text.insert in deleted to unmask Text.insert, while delattr raises AttributeError. The if check is useless, and replaced by 'try...' in the new patch.

I modified a few tests and added a few more. Coverage is now 100%.
msg222722 - (view) Author: Roundup Robot (python-dev) (Python triager) Date: 2014-07-11 04:16
New changeset 53d0776aab53 by Terry Jan Reedy in branch '2.7':
#21940: Add unittest for WidgetRedirector. Initial patch by Saimadhav Heblikar.
http://hg.python.org/cpython/rev/53d0776aab53

New changeset edf2ae293d70 by Terry Jan Reedy in branch '3.4':
#21940: Add unittest for WidgetRedirector. Initial patch by Saimadhav Heblikar.
http://hg.python.org/cpython/rev/edf2ae293d70
History
Date User Action Args
2022-04-11 14:58:05adminsetgithub: 66139
2014-07-11 04:17:41terry.reedysetstatus: open -> closed
resolution: fixed
stage: commit review -> resolved
2014-07-11 04:16:56python-devsetmessages: + msg222722
2014-07-10 07:58:41terry.reedysetfiles: + test-redir-21940-34.diff
messages: + msg222653

assignee: terry.reedy
type: enhancement
stage: commit review
2014-07-10 05:17:50python-devsetnosy: + python-dev
messages: + msg222649
2014-07-08 14:37:15Saimadhav.Heblikarcreate