Author: Armin Rigo <ar...@tunes.org> Branch: Changeset: r64955:30e24bcbd0e5 Date: 2013-06-22 17:54 +0200 http://bitbucket.org/pypy/pypy/changeset/30e24bcbd0e5/
Log: Fix for issue1520. diff --git a/pypy/module/sys/initpath.py b/pypy/module/sys/initpath.py --- a/pypy/module/sys/initpath.py +++ b/pypy/module/sys/initpath.py @@ -45,10 +45,7 @@ raise NotImplementedError def resolvedirof(filename): - try: - filename = rpath.rabspath(filename) - except OSError: - pass + filename = rpath.rabspath(filename) dirname = rpath.rabspath(os.path.join(filename, '..')) if os.path.islink(filename): try: diff --git a/rpython/rlib/rpath.py b/rpython/rlib/rpath.py --- a/rpython/rlib/rpath.py +++ b/rpython/rlib/rpath.py @@ -7,7 +7,12 @@ if os.name == 'posix': # the posix version is already RPython, just use it - rabspath = os.path.abspath + # (but catch exceptions) + def rabspath(path): + try: + return os.path.abspath(path) + except OSError: + return path elif os.name == 'nt': def rabspath(path): if path == '': diff --git a/rpython/rlib/test/test_rpath.py b/rpython/rlib/test/test_rpath.py --- a/rpython/rlib/test/test_rpath.py +++ b/rpython/rlib/test/test_rpath.py @@ -12,6 +12,19 @@ def test_rabspath_absolute_posix(): assert rpath.rabspath('/foo') == '/foo' +@py.test.mark.skipif("IS_WINDOWS") +def test_missing_current_dir(tmpdir): + tmpdir1 = str(tmpdir) + '/temporary_removed' + curdir1 = os.getcwd() + try: + os.mkdir(tmpdir1) + os.chdir(tmpdir1) + os.rmdir(tmpdir1) + result = rpath.rabspath('.') + finally: + os.chdir(curdir1) + assert result == '.' + @py.test.mark.skipif("not IS_WINDOWS") def test_rabspath_absolute_nt(): curdrive, _ = os.path.splitdrive(os.getcwd()) _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit