Corrected the skipIfDBFeature and skipUnlessDBFeature decorators to actually *run* the tests they decorate. Thanks to Alex for the report and patch.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@14243 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
cd63ce077d
commit
400125d718
|
@ -576,13 +576,16 @@ class TestCase(TransactionTestCase):
|
|||
connection.close()
|
||||
|
||||
def _deferredSkip(condition, reason):
|
||||
def decorator(test_item):
|
||||
if not (isinstance(test_item, type) and issubclass(test_item, TestCase)):
|
||||
@wraps(test_item)
|
||||
def decorator(test_func):
|
||||
if not (isinstance(test_func, type) and issubclass(test_func, TestCase)):
|
||||
@wraps(test_func)
|
||||
def skip_wrapper(*args, **kwargs):
|
||||
if condition():
|
||||
raise unittest.SkipTest(reason)
|
||||
return test_func(*args, **kwargs)
|
||||
test_item = skip_wrapper
|
||||
else:
|
||||
test_item = test_func
|
||||
test_item.__unittest_skip_why__ = reason
|
||||
return test_item
|
||||
return decorator
|
||||
|
|
|
@ -1,9 +1,23 @@
|
|||
import sys
|
||||
|
||||
from django.test import TestCase, skipUnlessDBFeature, skipIfDBFeature
|
||||
|
||||
|
||||
if sys.version_info >= (2, 5):
|
||||
from python_25 import AssertNumQueriesTests
|
||||
|
||||
|
||||
class SkippingTestCase(TestCase):
|
||||
def test_skip_unless_db_feature(self):
|
||||
"A test that might be skipped is actually called."
|
||||
# Total hack, but it works, just want an attribute that's always true.
|
||||
@skipUnlessDBFeature("__class__")
|
||||
def test_func():
|
||||
raise ValueError
|
||||
|
||||
self.assertRaises(ValueError, test_func)
|
||||
|
||||
|
||||
__test__ = {"API_TEST": r"""
|
||||
# Some checks of the doctest output normalizer.
|
||||
# Standard doctests do fairly
|
||||
|
|
Loading…
Reference in New Issue