| Index: Tools/Scripts/webkitpy/thirdparty/unittest2/compatibility.py
|
| diff --git a/Tools/Scripts/webkitpy/thirdparty/unittest2/compatibility.py b/Tools/Scripts/webkitpy/thirdparty/unittest2/compatibility.py
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..b8f15dd142882d64c4f01d252a23d3e55b2a7242
|
| --- /dev/null
|
| +++ b/Tools/Scripts/webkitpy/thirdparty/unittest2/compatibility.py
|
| @@ -0,0 +1,64 @@
|
| +import os
|
| +import sys
|
| +
|
| +try:
|
| + from functools import wraps
|
| +except ImportError:
|
| + # only needed for Python 2.4
|
| + def wraps(_):
|
| + def _wraps(func):
|
| + return func
|
| + return _wraps
|
| +
|
| +__unittest = True
|
| +
|
| +def _relpath_nt(path, start=os.path.curdir):
|
| + """Return a relative version of a path"""
|
| +
|
| + if not path:
|
| + raise ValueError("no path specified")
|
| + start_list = os.path.abspath(start).split(os.path.sep)
|
| + path_list = os.path.abspath(path).split(os.path.sep)
|
| + if start_list[0].lower() != path_list[0].lower():
|
| + unc_path, rest = os.path.splitunc(path)
|
| + unc_start, rest = os.path.splitunc(start)
|
| + if bool(unc_path) ^ bool(unc_start):
|
| + raise ValueError("Cannot mix UNC and non-UNC paths (%s and %s)"
|
| + % (path, start))
|
| + else:
|
| + raise ValueError("path is on drive %s, start on drive %s"
|
| + % (path_list[0], start_list[0]))
|
| + # Work out how much of the filepath is shared by start and path.
|
| + for i in range(min(len(start_list), len(path_list))):
|
| + if start_list[i].lower() != path_list[i].lower():
|
| + break
|
| + else:
|
| + i += 1
|
| +
|
| + rel_list = [os.path.pardir] * (len(start_list)-i) + path_list[i:]
|
| + if not rel_list:
|
| + return os.path.curdir
|
| + return os.path.join(*rel_list)
|
| +
|
| +# default to posixpath definition
|
| +def _relpath_posix(path, start=os.path.curdir):
|
| + """Return a relative version of a path"""
|
| +
|
| + if not path:
|
| + raise ValueError("no path specified")
|
| +
|
| + start_list = os.path.abspath(start).split(os.path.sep)
|
| + path_list = os.path.abspath(path).split(os.path.sep)
|
| +
|
| + # Work out how much of the filepath is shared by start and path.
|
| + i = len(os.path.commonprefix([start_list, path_list]))
|
| +
|
| + rel_list = [os.path.pardir] * (len(start_list)-i) + path_list[i:]
|
| + if not rel_list:
|
| + return os.path.curdir
|
| + return os.path.join(*rel_list)
|
| +
|
| +if os.path is sys.modules.get('ntpath'):
|
| + relpath = _relpath_nt
|
| +else:
|
| + relpath = _relpath_posix
|
|
|