IDLE modules have main() or test() functions which are essential for testing.
M idlelib/AutoCompleteWindow.py
M idlelib/UndoDelegator.py
M idlelib/Bindings.py
M idlelib/AutoComplete.py
M idlelib/configHandler.py
M idlelib/HyperParser.py
M idlelib/ColorDelegator.py
M idlelib/ObjectBrowser.py
M idlelib/ZoomHeight.py
M idlelib/PyShell.py
M idlelib/ParenMatch.py
M idlelib/Debugger.py
M idlelib/configDialog.py
M idlelib/StackViewer.py
M idlelib/ReplaceDialog.py
M idlelib/ScriptBinding.py
M idlelib/GrepDialog.py
M idlelib/EditorWindow.py
M idlelib/FormatParagraph.py
M idlelib/OutputWindow.py
M idlelib/aboutDialog.py
M idlelib/IdleHistory.py
M idlelib/PathBrowser.py
M idlelib/ClassBrowser.py
M idlelib/CallTips.py
M idlelib/FileList.py
M idlelib/idle.py
M idlelib/CodeContext.py
M idlelib/SearchDialog.py
M idlelib/RemoteObjectBrowser.py
M idlelib/RemoteDebugger.py
M idlelib/TreeWidget.py
M idlelib/run.py
M idlelib/Percolator.py
M idlelib/macosxSupport.py
There's one major and one minor category still unfixed:
doctests are the major category (and I hope to be able to augment the
refactoring tool to refactor bona fide doctests soon);
other code generating print statements in strings is the minor category.
(Oh, and I don't know if the compiler package works.)