Diferencia entre revisiones de «Pruebas unitarias - django»

De Wiki de EGC
Saltar a: navegación, buscar
(Página creada con «Lo primero que vamos a tratar de ejecutar son el conjunto de pruebas unitarias que tenemos dentro de la aplicación de decide. <source> from django.contrib.auth.models imp...»)
 
Línea 2: Línea 2:
  
 
<source>
 
<source>
 +
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 django.contrib.auth.models import User
 
from rest_framework.authtoken.models import Token
 
from rest_framework.authtoken.models import Token
Línea 35: Línea 39:
 
...
 
...
 
</source>
 
</source>
 +
 +
* Disponemos de un método setup que se ejecutará con anterioridad a 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. [https://github.com/EGCETSII/decide/blob/master/decide/authentication/tests.py]
 +
 +
 +
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

Revisión del 14:17 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 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