﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
27214	The skipIfDBFeature decorators and its variants should respect their defined wrapped order and test case inheritance.	Simon Charette	Simon Charette	"The database features test skipping decorators do not respect the order in which they are wrapped or inherited and end up masking the original reason that resulted in skipping the test.

For example given the following test case classes:

{{{#!python
@skipIfDbFeature('available')
@skipUnlessDbFeature('missing')
class Foo(TestCase):
   def test_foo(self):
        pass

@skipUnlessDbFeature('also-missing')
class Bar(Foo):
    def test_bar(self):
        pass
}}}

The `Foo.test_foo` method would be skipped with the following reason: `'Database has feature(s) available'` and the `Bar.test_bar` method would be skipped with `'Database doesn't support feature(s): also-missing'` when both should be skipped with `'Database doesn't support feature(s): missing'`.

This is an issue I discovered while working on 32c0d823e5316aa7d616a69996919b62748368cc where I noticed JSONB tests were skipped with the `'Database doesn't support feature(s): has_jsonb_datatype'` instead of the expected `'PostgreSQL specific tests'` when running tests using the SQLite backend."	Cleanup/optimization	closed	Testing framework	dev	Normal	fixed			Ready for checkin	1	0	0	0	0	0
