Terry J. Reedy added the comment:

The test passes as written, so I am not sure what 'mostly works' means.

I said elsewhere, and revised README to match, that I changed my mind about 
test case names starting with 'Test'. Ending with 'Test' is much more common in 
/test and I decided from experience that it works better in verbose listings.

A complete test of FormatParagraph might have these test cases:
Is_Get_Test (with methods for is_ and get_ functions)
FindTest
ReformatFunctionTest
ReformatClassTest

I am assuming that the latter 3 will each need multiple tests. You can add 
blank subclasses, possibly with comments on what to do, as I did in test_grep.

(While reviewing reformat_paragraph, you might consider whether you think the 
'xxx Should' comments are valid.)

Guido just reminded pydev readers that a proper docstring is a single summary 
line, with period, optionally followed by a blank line and more explanation. 
For multiple lines, the closing ''' should be on its own line.

Idle is deficient in this regard, either omitting docstrings where needed or 
writing docstrings as comments or mis-formatting multiple lines. Writing tests 
is a good time to add or revise them because one has to understand the function 
to test it. See comments on review.

I think putting a mock text widget and mock editor class together is one file. 
They should eventually be filled out, but starting with pass is ok. But see 
next message.
--
'Monkey-patching' is importing a module and changing a binding within the 
module. For Idle testing, a reason to do this is to avoid using tkinter. For 
example, test_config_name imports configSectionNameDialog and rebinds 
tkMessageBox to a mock_tk.Mbox*. This is necessary because even though methods 
are rebound as attributes of a dummy class in the test module, their read-only 
.__globals__ attribute still points to the module where they are defined. 

Monkey patching is only needed for global names used within the method tested. 
All self.xyx attribute references are resolved with the dummy instance and 
class. Hence mock Var is used in the dummy class but not monkey-patched into 
the imported module.

This test does not monkey patch and does not need too. The only imported 
glogals are re and idleConf, and the latter does not (I presume) involve 
tkinter. Neither do any of the objects defined in the module. It is really 
handy for testing that FormatParagraph is initialized with a passed-in editwin 
argument, so we can simply pass in a non-gui substitute for testing.

* This is done is a setup function so it can and will be undone in a matching 
teardown function.

----------
versions: +Python 3.3

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue18226>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to