Django cuándo usar el método de desmontaje

Según los documentos:

A TestCase, por otro lado, no trunca las tablas y no recarga los datos iniciales al comienzo de una prueba. En su lugar, encierra el código de prueba en una transacción de base de datos que se revierte al final de la prueba. También evita que el código bajo prueba emita operaciones de confirmación o reversión en la base de datos, para garantizar que la reversión al final de la prueba restaure la base de datos a su estado inicial. Para garantizar que todo el código TestCase comience con una base de datos limpia, el corredor de pruebas de Django ejecuta primero todas las pruebas TestCase, antes que cualquier otra prueba (por ejemplo, doctests) que pueda alterar la base de datos sin restaurarla a su estado original.

Así que si tengo una prueba que se ve así:

class GeneralUserCreateTest(TestCase):

    def setUp(self):
        create_roletypes()
        create_permissiontypes()
        self.client = Client()
        self.event = create_event()

    def test_create(self):
        create_url = reverse('event_user_signup', args=[self.event.slug])

        post_data = {
            'signup-account-email': '[email protected]',
            'signup-account-password': 'foobar',
            'signup-account-password2': 'foobar',
            'signup-account-first_name': 'Foo',
            'signup-account-last_name': 'Bar',
        }
        response = self.client.post(create_url, data=post_data)
        self.assertEqual(response.status_code, 302)

        # check creation of user object
        self.assertEqual(User.objects.filter(email=post_data['signup-account-email']).count(), 1)
        user = User.objects.get(username=post_data['signup-account-email'])

        # user and profile objects created
        self.assertEqual(User.objects.all().count(), 1)
        self.assertEqual(Profile.objects.all().count(), 1)

        # get the first user and profile object to test against submitted field
        user = User.objects.all()[0]
        profile = Profile.objects.all()[0]
        role = Role.objects.filter(event=self.event, profiles=profile)[0]
        self.assertEqual(role.roletype.name, 'General')
        self.assertEqual(user.username, post_data['signup-account-email'])
        self.assertEqual(user.email, post_data['signup-account-email'])
        self.assertEqual(profile.first_name, post_data['signup-account-first_name'])
        self.assertEqual(profile.last_name, post_data['signup-account-last_name'])

¿Sigue siendo necesario ejecutar unteardown o elTestCase clase cuidarlo? Si es así, ¿cuándo se debe usar lateardownétodo @ dada la disponibilidad deTestCase ¿clase

Respuestas a la pregunta(6)

Su respuesta a la pregunta