Diferencia entre revisiones de «Pruebas unitarias - django»

De Wiki de EGC
Saltar a: navegación, buscar
 
Línea 40: Línea 40:
 
</source>
 
</source>
  
* Disponemos de un método setup que se ejecutará con anterioridad a las pruebas.  
+
* 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
 
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
  

Revisión actual del 14:26 15 nov 2019

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