SimpleTestCase.allow_database_queries
SimpleTestCase
disallows database queries by default. This helps to avoid executing write queries which will affect other tests since each SimpleTestCase
test isn’t run in a transaction. If you aren’t concerned about this problem, you can disable this behavior by setting the allow_database_queries
class attribute to True
on your test class.
Warning
SimpleTestCase
and its subclasses (e.g. TestCase
, ...) rely on setUpClass()
and tearDownClass()
to perform some class-wide initialization (e.g. overriding settings). If you need to override those methods, don’t forget to call the super
implementation:
class MyTestCase(TestCase): @classmethod def setUpClass(cls): super(MyTestCase, cls).setUpClass() ... @classmethod def tearDownClass(cls): ... super(MyTestCase, cls).tearDownClass()
Be sure to account for Python’s behavior if an exception is raised during setUpClass()
. If that happens, neither the tests in the class nor tearDownClass()
are run. In the case of django.test.TestCase
, this will leak the transaction created in super()
which results in various symptoms including a segmentation fault on some platforms (reported on OS X). If you want to intentionally raise an exception such as unittest.SkipTest
in setUpClass()
, be sure to do it before calling super()
to avoid this.
Please login to continue.