Pruebas unitarias - django
De Wiki de EGC
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