Pruebas unitarias - django

De Wiki de EGC
Saltar a: navegación, buscar

Lo primero que vamos a tratar de ejecutar son el conjunto de pruebas unitarias que tenemos dentro de la aplicación de decide.

from django.test import TestCase
from rest_framework.test import APIClient
from rest_framework.test import APITestCase

from django.contrib.auth.models import User
from rest_framework.authtoken.models import Token

from base import mods


class AuthTestCase(APITestCase):

    def setUp(self):
        self.client = APIClient()
        mods.mock_query(self.client)
        u = User(username='voter1')
        u.set_password('123')
        u.save()

        u2 = User(username='admin')
        u2.set_password('admin')
        u2.is_superuser = True
        u2.save()

    def tearDown(self):
        self.client = None

    def test_login(self):
        data = {'username': 'voter1', 'password': '123'}
        response = self.client.post('/authentication/login/', data, format='json')
        self.assertEqual(response.status_code, 200)

        token = response.json()
        self.assertTrue(token.get('token'))

...
  • Disponemos de un método setup que se ejecutará con anterioridad a cada una de las pruebas.

Este método nos permite preparar el sistema para la ejecución de las pruebas. En el ejemplo creamos un usuario voter1 con el password 123

  • Por otra parte disponemos de un método tearDown que se encarga de eliminar la asignación del usuario.
  • Finalmente cada una de las pruebas se ejecuta lanzando los distintos métodos test: que se encuentren implementados en la clase. [1]

Ejercicio 1

Implementar un nuevo test que se encarge de probar si es posible autenticarse con el usuario admin y el password admin. Ejecutar la prueba