test_personas.py
2.22 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
import pytest
from rest_framework.test import APIClient
from core.tests.fixtures_usuario import create_user, crear_permiso_usuario
from persona.models import Persona
from persona.tests.fixtures import crear_personas
@pytest.mark.django_db
def test_vista_lista_personas(crear_personas):
client = APIClient()
response = client.get('/persona/lista/')
assert response.status_code == 200
queryset_personas = response.context['personas']
assert queryset_personas.count() == 3
assert queryset_personas[0].nombre == 'Cecilia'
assert queryset_personas[1].nombre == 'David'
assert queryset_personas[2].nombre == 'Santiago'
@pytest.mark.django_db
def test_vista_lista_personas_por_edad(crear_personas):
client = APIClient()
response = client.get(f'/persona/lista/?edad=25')
assert response.status_code == 200
queryset_personas = response.context['personas']
assert queryset_personas.count() == 1
assert queryset_personas[0].nombre == 'David'
@pytest.mark.django_db
def test_vista_creacion_persona_autorizado():
usuario = create_user(username='Cecilia', is_staff=True)
permiso_crear_personas = crear_permiso_usuario(
codename='add_persona',
name='Puede agregar una persona',
app_name='persona',
model_name='persona')
usuario.user_permissions.add(permiso_crear_personas,)
client = APIClient()
client.login(username='Cecilia', password='password')
data = {
'nombre': 'Ruben',
'apellido': 'Lopez',
'documento_identidad': '23789475',
}
response = client.post(f'/persona/creacion/', data=data)
assert response.status_code == 302
assert Persona.objects.filter(documento_identidad='23789475').exists()
@pytest.mark.django_db
def test_vista_creacion_persona_no_autorizado():
usuario = create_user(username='Cecilia', is_staff=True)
client = APIClient()
client.login(username='Cecilia', password='password')
data = {
'nombre': 'Ruben',
'apellido': 'Lopez',
'documento_identidad': '23789475',
}
response = client.post(f'/persona/creacion/', data=data)
assert response.status_code == 403
assert not Persona.objects.filter(documento_identidad='23789475').exists()