diff options
author | Gregory P. Smith <greg@krypto.org> | 2015-02-04 01:04:31 -0800 |
---|---|---|
committer | Gregory P. Smith <greg@krypto.org> | 2015-02-04 01:04:31 -0800 |
commit | ef3e7a803f7e575ce26cb2e4e29e46da2d89c124 (patch) | |
tree | ec9df5664c8029412e3923f694c3bbbbc9434ee6 /Lib/posixpath.py | |
parent | f97d8cc43c09116bebd4d54b7ef5baf472058de3 (diff) | |
parent | 7c584647e0c2fe3f84299cab3b7941d1595de32f (diff) | |
download | cpython-ef3e7a803f7e575ce26cb2e4e29e46da2d89c124.tar.gz |
Skip some tests that require a subinterpreter launched with -E or -I when the
interpreter under test is being run in an environment that requires the use of
environment variables such as PYTHONHOME in order to function at all.
Adds a test.script_helper.interpreter_requires_environment() function
to be used with @unittest.skipIf on stdlib test methods requiring this.
Diffstat (limited to 'Lib/posixpath.py')
-rw-r--r-- | Lib/posixpath.py | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/Lib/posixpath.py b/Lib/posixpath.py index 0aa53feac2..44ed8383f2 100644 --- a/Lib/posixpath.py +++ b/Lib/posixpath.py @@ -82,11 +82,8 @@ def join(a, *p): path += b else: path += sep + b - except TypeError: - if all(isinstance(s, (str, bytes)) for s in (a,) + p): - # Must have a mixture of text and binary data - raise TypeError("Can't mix strings and bytes in path " - "components") from None + except (TypeError, AttributeError, BytesWarning): + genericpath._check_arg_types('join', a, *p) raise return path @@ -445,13 +442,16 @@ def relpath(path, start=None): if start is None: start = curdir - start_list = [x for x in abspath(start).split(sep) if x] - path_list = [x for x in abspath(path).split(sep) if x] - - # Work out how much of the filepath is shared by start and path. - i = len(commonprefix([start_list, path_list])) - - rel_list = [pardir] * (len(start_list)-i) + path_list[i:] - if not rel_list: - return curdir - return join(*rel_list) + try: + start_list = [x for x in abspath(start).split(sep) if x] + path_list = [x for x in abspath(path).split(sep) if x] + # Work out how much of the filepath is shared by start and path. + i = len(commonprefix([start_list, path_list])) + + rel_list = [pardir] * (len(start_list)-i) + path_list[i:] + if not rel_list: + return curdir + return join(*rel_list) + except (TypeError, AttributeError, BytesWarning, DeprecationWarning): + genericpath._check_arg_types('relpath', path, start) + raise |