"""
Available TestCase implementations.
"""
from django.test import TransactionTestCase
from .cleanup import truncate_tables


class TestCase(TransactionTestCase):
    """
    TestCase provides all Django's customs assertion methods.
    By inheriting from TransactionTestCase and overriding its setup and
    teardown primary functions, we remove the transaction load.
    """

    @classmethod
    def setUpClass(cls):
        truncate_tables()

    @classmethod
    def tearDownClass(cls):
        truncate_tables()

    def _pre_setup(self):
        """
        Overriding from TransactionTestCase so it doesn't do it's black magic.
        """
        pass

    def _post_teardown(self):
        """
        Same as above.
        """
        pass

@@ -32,16 +32,281 @@
 tations.
+%0A%0AOnly use this test case if you are under Django 1.8.%0AIt is not recommended for Django 1.8 because they fixed the issue their TestCase%0Ahad with writing in the database on the setUpClass and TearDownClass, which%0Afinally makes things really faster on that version :)
 %0A%22%22%22%0Afro

add comment on module doc about Django 1.8 usage