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.

Author manuelg_
Recipients
Date 2007-04-26.19:02:04
SpamBayes Score
Marked as misclassified
Message-id
In-reply-to
Content
doctest crashes when working with Windows PyReadline (PyReadline is a component of Windows IPython)

PyReadline expects "_SpoofOut" to have an "encoding" attribute

E
======================================================================
ERROR: testDocTest (__main__.TestDocTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "test_freecell_solver.py", line 26, in testDocTest
    r = doctest.testmod(freecell_solver)
  File "c:\Python25\Lib\doctest.py", line 1799, in testmod
    runner.run(test)
  File "c:\Python25\Lib\doctest.py", line 1335, in run
    self.debugger = _OutputRedirectingPdb(save_stdout)
  File "c:\Python25\Lib\doctest.py", line 320, in __init__
    pdb.Pdb.__init__(self, stdout=out)
  File "c:\Python25\Lib\pdb.py", line 66, in __init__
    import readline
  File "C:\Python25\Lib\site-packages\readline.py", line 5, in <module>
    from pyreadline import *
  File "C:\Python25\Lib\site-packages\pyreadline\__init__.py", line 10, in <module>
    from rlmain import *
  File "C:\Python25\Lib\site-packages\pyreadline\rlmain.py", line 13, in <module>
    import clipboard,logger,console
  File "C:\Python25\Lib\site-packages\pyreadline\console\__init__.py", line 14,in <module>
    from console import *
  File "C:\Python25\Lib\site-packages\pyreadline\console\console.py", line 118,in <module>
    consolecodepage=sys.stdout.encoding
AttributeError: _SpoofOut instance has no attribute 'encoding'

This is an easy fix with 2 lines of code to doctest.py

right after doctest.py imports "sys", store the "sys.stdout.encoding"

_sys_stdout_encoding = sys.stdout.encoding

Then add this as an attribute "encoding" in the "_SpoofOut" class

# Override some StringIO methods.
class _SpoofOut(StringIO):

    ....
            
    encoding = _sys_stdout_encoding

History
Date User Action Args
2007-08-23 14:53:27adminlinkissue1708316 messages
2007-08-23 14:53:27admincreate