aboutsummaryrefslogtreecommitdiffstats
path: root/djangorestframework/compat.py
diff options
context:
space:
mode:
Diffstat (limited to 'djangorestframework/compat.py')
-rw-r--r--djangorestframework/compat.py29
1 files changed, 29 insertions, 0 deletions
diff --git a/djangorestframework/compat.py b/djangorestframework/compat.py
index 38119811..58ecb453 100644
--- a/djangorestframework/compat.py
+++ b/djangorestframework/compat.py
@@ -432,3 +432,32 @@ try:
except ImportError:
yaml = None
+import unittest
+try:
+ import unittest.skip
+except ImportError: # python < 2.7
+ from unittest import TestCase
+ import functools
+
+ class SkipTest(Exception):
+ # Pasted from py27/lib/unittest/case.py
+ pass
+
+ def skip(reason):
+ # Pasted from py27/lib/unittest/case.py
+ """
+ Unconditionally skip a test.
+ """
+ def decorator(test_item):
+ if not (isinstance(test_item, type) and issubclass(test_item, TestCase)):
+ @functools.wraps(test_item)
+ def skip_wrapper(*args, **kwargs):
+ raise SkipTest(reason)
+ test_item = skip_wrapper
+
+ test_item.__unittest_skip__ = True
+ test_item.__unittest_skip_why__ = reason
+ return test_item
+ return decorator
+
+ unittest.skip = skip