aboutsummaryrefslogtreecommitdiff
path: root/third_party/Python/module/unittest2/unittest2/compatibility.py
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/Python/module/unittest2/unittest2/compatibility.py')
-rw-r--r--third_party/Python/module/unittest2/unittest2/compatibility.py64
1 files changed, 64 insertions, 0 deletions
diff --git a/third_party/Python/module/unittest2/unittest2/compatibility.py b/third_party/Python/module/unittest2/unittest2/compatibility.py
new file mode 100644
index 000000000000..b8f15dd14288
--- /dev/null
+++ b/third_party/Python/module/unittest2/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