[py-dev] py.test error with cygwin update

holger krekel hpk at trillke.net
Tue Jul 19 12:21:51 CEST 2005


Hi, 

On Tue, Jul 19, 2005 at 00:38 -0400, odonian at gmail.com wrote:
> I've been happily using py.test for about two months without problems
> with an older version of cygwin (maybe 3-4 months old; sorry, don't
> have the version number) and python 2.3.4.

good!

> Just recently I updated the cygwin environment, and now py.test keeps
> failing; I have tried re-installing the py lib, re-installing cygwin,
> and tried different versions of python (2.3.4, 2.4.1).  But this error
> keeps coming up when running py.test, regardless of any other
> command-line arguments (i.e. whether it's run in test collection mode,
> or fed a specific test file, this error shows up):
> 
> Traceback (most recent call last):
>   File "/usr/bin/py.test", line 4, in ?
>     py.test.cmdline.main() 
>   File "/usr/lib/python2.4/site-packages/py/test/cmdline.py", line 8, in main
>     config, args = py.test.Config.parse(py.std.sys.argv[1:])
>   File "/usr/lib/python2.4/site-packages/py/test/config.py", line 60, in parse
>     configpaths = guessconfigpaths(*getanchorpaths(args))
>   File "/usr/lib/python2.4/site-packages/py/test/config.py", line 183,
> in guessconfigpaths
>     if x.check(file=1):
>   File "/usr/lib/python2.4/site-packages/py/path/common.py", line 96, in check
>     return self.Checkers(self)._evaluate(kw)
>   File "/usr/lib/python2.4/site-packages/py/path/common.py", line 69,
> in _evaluate
>     if bool(value) ^ bool(meth()) ^ invert:
>   File "/usr/lib/python2.4/site-packages/py/path/local/local.py", line
> 38, in file
>     return stat.S_ISREG(self._stat().st_mode)
>   File "/usr/lib/python2.4/site-packages/py/path/local/local.py", line
> 29, in _stat
>     self._statcache = self.path.stat()
>   File "/usr/lib/python2.4/site-packages/py/path/local/local.py", line
> 283, in stat
>     return self._callex(os.stat, self.strpath)
>   File "/usr/lib/python2.4/site-packages/py/path/common.py", line 207,
> in _callex
>     cls = py.error._geterrnoclass(errno)
>   File "/usr/lib/python2.4/site-packages/py/misc/error.py", line 45,
> in _geterrnoclass
>     clsname = py.std.errno.errorcode[eno]
> KeyError: 136

It seems that this is an error code that is not defined by 
Python's errno module. We should provide a default 
Error class like "UnknownErrno136" in case we can't discover 
it from the errorcode module.  I have just commited something
along these lines. 

> Since this didn't show up before, ever, I'm guessing paths are somehow
> handled differently in newer cygwin versions, but hard to imagine why
> it would change that much.  I have tried catching the above particular
> KeyError for the errorcode dictionary, but that only causes another
> problem elsewhere.  Any help would be appreciated,

The error should propagate because it indicates a real problem. 
Once we have a proper error and know which os-level operation 
actually failed we should be further.  Can you 'svn up', 
reinstall and report about the error/traceback again? 

cheers, 

    holger



More information about the Pytest-dev mailing list