Commit 400125d7 authored by Russell Keith-Magee's avatar Russell Keith-Magee
Browse files

Corrected the skipIfDBFeature and skipUnlessDBFeature decorators to actually...

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
parent cd63ce07
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -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
+14 −0
Original line number Diff line number Diff line
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