Message31900
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
|
|
Date |
User |
Action |
Args |
2007-08-23 14:53:27 | admin | link | issue1708316 messages |
2007-08-23 14:53:27 | admin | create | |
|