﻿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
14049	Fixture loading should be skipped for TestCase decorated with @skip*	Piotr Czachur	Paul McMillan	"!TransactionTestCase overrides unittest.!TestCase.!__call!__() and always runs _fixture_setup(), even for skipped tests (decorated with @skip* from unittest).
It makes no sense at all and it's really waste of time to wait for those fixtures to load.
{{{
class TransactionTestCase(unittest.TestCase):
    def _pre_setup(self):
        """"""Performs any pre-test setup. This includes:

            * Flushing the database.
            * If the Test Case class has a 'fixtures' member, installing the
              named fixtures.
            * If the Test Case class has a 'urls' member, replace the
              ROOT_URLCONF with it.
            * Clearing the mail test outbox.
        """"""
        self._fixture_setup()
        self._urlconf_setup()
        mail.outbox = []

    # ...

    def __call__(self, result=None):
        """"""
        Wrapper around default __call__ method to perform common Django test
        set up. This means that user-defined Test Cases aren't required to
        include a call to super().setUp().
        """"""
        self.client = Client()
        try:
            self._pre_setup()   # LOAD FOR EVERY TestCase
        except (KeyboardInterrupt, SystemExit):
            raise
        except Exception:
            import sys
            result.addError(self, sys.exc_info())
            return
        super(TransactionTestCase, self).__call__(result)  # HERE @skip* decorators are honoured
}}}"	Cleanup/optimization	closed	Testing framework	1.2	Normal	fixed			Accepted	1	0	0	0	0	0
