Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
4cc80ca9
Commit
4cc80ca9
authored
Feb 20, 2010
by
Ezio Melotti
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
#3426: os.path.abspath now returns unicode when its arg is unicode.
parent
61afd269
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
57 additions
and
6 deletions
+57
-6
Lib/macpath.py
Lib/macpath.py
+5
-1
Lib/ntpath.py
Lib/ntpath.py
+7
-1
Lib/os2emxpath.py
Lib/os2emxpath.py
+5
-1
Lib/posixpath.py
Lib/posixpath.py
+5
-1
Lib/test/test_macpath.py
Lib/test/test_macpath.py
+10
-0
Lib/test/test_ntpath.py
Lib/test/test_ntpath.py
+13
-1
Lib/test/test_posixpath.py
Lib/test/test_posixpath.py
+9
-0
Misc/NEWS
Misc/NEWS
+3
-1
No files found.
Lib/macpath.py
View file @
4cc80ca9
...
...
@@ -186,7 +186,11 @@ def walk(top, func, arg):
def
abspath
(
path
):
"""Return an absolute path."""
if
not
isabs
(
path
):
path
=
join
(
os
.
getcwd
(),
path
)
if
isinstance
(
path
,
unicode
):
cwd
=
os
.
getcwdu
()
else
:
cwd
=
os
.
getcwd
()
path
=
join
(
cwd
,
path
)
return
normpath
(
path
)
# realpath is a no-op on systems without islink support
...
...
Lib/ntpath.py
View file @
4cc80ca9
...
...
@@ -449,7 +449,11 @@ except ImportError: # not running on Windows - mock up something sensible
def
abspath
(
path
):
"""Return the absolute version of a path."""
if
not
isabs
(
path
):
path
=
join
(
os
.
getcwd
(),
path
)
if
isinstance
(
path
,
unicode
):
cwd
=
os
.
getcwdu
()
else
:
cwd
=
os
.
getcwd
()
path
=
join
(
cwd
,
path
)
return
normpath
(
path
)
else
:
# use native Windows method on Windows
...
...
@@ -461,6 +465,8 @@ else: # use native Windows method on Windows
path
=
_getfullpathname
(
path
)
except
WindowsError
:
pass
# Bad path - return unchanged.
elif
isinstance
(
path
,
unicode
):
path
=
os
.
getcwdu
()
else
:
path
=
os
.
getcwd
()
return
normpath
(
path
)
...
...
Lib/os2emxpath.py
View file @
4cc80ca9
...
...
@@ -146,7 +146,11 @@ def normpath(path):
def
abspath
(
path
):
"""Return the absolute version of a path"""
if
not
isabs
(
path
):
path
=
join
(
os
.
getcwd
(),
path
)
if
isinstance
(
path
,
unicode
):
cwd
=
os
.
getcwdu
()
else
:
cwd
=
os
.
getcwd
()
path
=
join
(
cwd
,
path
)
return
normpath
(
path
)
# realpath is a no-op on systems without islink support
...
...
Lib/posixpath.py
View file @
4cc80ca9
...
...
@@ -337,7 +337,11 @@ def normpath(path):
def
abspath
(
path
):
"""Return an absolute path."""
if
not
isabs
(
path
):
path
=
join
(
os
.
getcwd
(),
path
)
if
isinstance
(
path
,
unicode
):
cwd
=
os
.
getcwdu
()
else
:
cwd
=
os
.
getcwd
()
path
=
join
(
cwd
,
path
)
return
normpath
(
path
)
...
...
Lib/test/test_macpath.py
View file @
4cc80ca9
...
...
@@ -8,6 +8,16 @@ class MacPathTestCase(unittest.TestCase):
def
test_abspath
(
self
):
self
.
assertTrue
(
macpath
.
abspath
(
"xx:yy"
)
==
"xx:yy"
)
# Issue 3426: check that abspath retuns unicode when the arg is unicode
# and str when it's str, with both ASCII and non-ASCII cwds
for
cwd
in
(
u'cwd'
,
u'
\
xe7
w
\
xf0
'
):
with
test_support
.
temp_cwd
(
cwd
):
for
path
in
(
''
,
'foo'
,
'f
\
xf2
\
xf2
'
,
'/foo'
,
'C:
\
\
'
):
self
.
assertIsInstance
(
macpath
.
abspath
(
path
),
str
)
for
upath
in
(
u''
,
u'fuu'
,
u'f
\
xf9
\
xf9
'
,
u'/fuu'
,
u'U:
\
\
'
):
self
.
assertIsInstance
(
macpath
.
abspath
(
upath
),
unicode
)
def
test_isabs
(
self
):
isabs
=
macpath
.
isabs
self
.
assertTrue
(
isabs
(
"xx:yy"
))
...
...
Lib/test/test_ntpath.py
View file @
4cc80ca9
...
...
@@ -160,13 +160,25 @@ class TestNtpath(unittest.TestCase):
# the rest of the tests for the ntpath module to be run to completion
# on any platform, since most of the module is intended to be usable
# from any platform.
# XXX this needs more tests
try:
import nt
except ImportError:
pass
# check that the function is there even if we are not on Windows
ntpath.abspath
else:
tester('
ntpath
.
abspath
(
"C:
\
\
"
)
', "C:
\
\
")
# Issue 3426: check that abspath retuns unicode when the arg is
# unicode and str when it'
s
str
,
with
both
ASCII
and
non
-
ASCII
cwds
for
cwd
in
(
u'cwd'
,
u'
\
xe7
w
\
xf0
'
):
with
test_support
.
temp_cwd
(
cwd
):
for
path
in
(
''
,
'foo'
,
'f
\
xf2
\
xf2
'
,
'/foo'
,
'C:
\
\
'
):
self
.
assertIsInstance
(
ntpath
.
abspath
(
path
),
str
)
for
upath
in
(
u''
,
u'fuu'
,
u'f
\
xf9
\
xf9
'
,
u'/fuu'
,
u'U:
\
\
'
):
self
.
assertIsInstance
(
ntpath
.
abspath
(
upath
),
unicode
)
def
test_relpath
(
self
):
currentdir
=
os
.
path
.
split
(
os
.
getcwd
())[
-
1
]
tester
(
'ntpath.relpath("a")'
,
'a'
)
...
...
Lib/test/test_posixpath.py
View file @
4cc80ca9
...
...
@@ -386,6 +386,15 @@ class PosixPathTest(unittest.TestCase):
def
test_abspath
(
self
):
self
.
assertTrue
(
"foo"
in
posixpath
.
abspath
(
"foo"
))
# Issue 3426: check that abspath retuns unicode when the arg is unicode
# and str when it's str, with both ASCII and non-ASCII cwds
for
cwd
in
(
u'cwd'
,
u'
\
xe7
w
\
xf0
'
):
with
test_support
.
temp_cwd
(
cwd
):
for
path
in
(
''
,
'foo'
,
'f
\
xf2
\
xf2
'
,
'/foo'
,
'C:
\
\
'
):
self
.
assertIsInstance
(
posixpath
.
abspath
(
path
),
str
)
for
upath
in
(
u''
,
u'fuu'
,
u'f
\
xf9
\
xf9
'
,
u'/fuu'
,
u'U:
\
\
'
):
self
.
assertIsInstance
(
posixpath
.
abspath
(
upath
),
unicode
)
self
.
assertRaises
(
TypeError
,
posixpath
.
abspath
)
def
test_realpath
(
self
):
...
...
Misc/NEWS
View file @
4cc80ca9
...
...
@@ -15,6 +15,8 @@ Core and Builtins
Library
-------
- Issue #3426: ``os.path.abspath`` now returns unicode when its arg is unicode.
- Issue #7633: In the decimal module, Context class methods (with the
exception of canonical and is_canonical) now accept instances of int
and long wherever a Decimal instance is accepted, and implicitly
...
...
@@ -28,7 +30,7 @@ Library
argument added to the TextTestRunner constructor allowing a different result
class to be used without having to subclass.
- Issue 7588: ``unittest.TextTestResult.getDescription`` now includes the test
- Issue
#
7588: ``unittest.TextTestResult.getDescription`` now includes the test
name in failure reports even if the test has a docstring.
Extension Modules
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment