tests: accounts views

This commit is contained in:
Élie Bouttier 2014-09-01 19:46:23 -07:00
parent f85216e2c7
commit 24feea0f4f
2 changed files with 389 additions and 2 deletions

View file

@ -0,0 +1,98 @@
[
{
"fields": {
"name": "group1",
"permissions": []
},
"model": "auth.group",
"pk": 1
},
{
"fields": {
"name": "group2",
"permissions": []
},
"model": "auth.group",
"pk": 2
},
{
"fields": {
"date_joined": "2014-09-01T23:31:37.882Z",
"email": "",
"first_name": "",
"groups": [],
"is_active": true,
"is_staff": true,
"is_superuser": true,
"last_login": "2014-09-02T00:16:20.195Z",
"last_name": "",
"password": "pbkdf2_sha256$12000$y4SCnZMDIsYt$f6QbDiZEMmATk/nVNl4v8L8wFocsO6pGRpf8XvNBBM4=",
"user_permissions": [],
"username": "admin"
},
"model": "accounts.user",
"pk": 1
},
{
"fields": {
"date_joined": "2014-09-02T00:22:29.133Z",
"email": "",
"first_name": "Firstname1",
"groups": [
1
],
"is_active": true,
"is_staff": false,
"is_superuser": false,
"last_login": "2014-09-02T00:22:29.132Z",
"last_name": "Lastname1",
"password": "pbkdf2_sha256$12000$NdWyIc2shP8l$X2lTOVHvsmpyI6clGAbUX3gbUC/OzTRqnWxmErtDbys=",
"user_permissions": [],
"username": "user1"
},
"model": "accounts.user",
"pk": 2
},
{
"fields": {
"date_joined": "2014-09-02T02:19:04.110Z",
"email": "",
"first_name": "",
"groups": [],
"is_active": true,
"is_staff": false,
"is_superuser": false,
"last_login": "2014-09-02T02:19:04.110Z",
"last_name": "",
"password": "",
"user_permissions": [],
"username": "user2"
},
"model": "accounts.user",
"pk": 3
},
{
"fields": {
"groups": [],
"name": "team1",
"users": [
2
]
},
"model": "accounts.team",
"pk": 1
},
{
"fields": {
"groups": [
2
],
"name": "team2",
"users": [
3
]
},
"model": "accounts.team",
"pk": 2
}
]

View file

@ -1,3 +1,292 @@
from django.test import TestCase
import json
# Create your tests here.
from django.test import TestCase
from django.core.urlresolvers import reverse
from accounts.models import *
class TestViews(TestCase):
fixtures = ['test_views']
def setUp(self):
self.client.login(username='admin', password='admin')
# Profile
def test_profile(self):
response = self.client.get(reverse('profile'))
self.assertEqual(response.status_code, 200)
# Users
def test_user_list(self):
response = self.client.get(reverse('list-user'))
self.assertEqual(response.status_code, 200)
self.assertContains(response, "user1")
self.assertContains(response, "Firstname1 Lastname1")
def test_user_details(self):
user = User.objects.get(username="user1")
response = self.client.get(reverse('show-user', args=[user.id]))
self.assertEqual(response.status_code, 200)
self.assertContains(response, "user1")
self.assertContains(response, "group1")
self.assertContains(response, "team1")
def test_user_add(self):
user_count = User.objects.count()
response = self.client.post(reverse('add-user'), {
'username': 'newuser',
})
self.assertEqual(User.objects.count(), user_count + 1)
user = User.objects.get(username='newuser')
self.assertRedirects(response, reverse('show-user', args=[user.id]))
def test_user_edit(self):
user = User.objects.get(username='user1')
response = self.client.post(reverse('edit-user', args=[user.id]), {
'first_name': 'newfirstname',
})
self.assertRedirects(response, reverse('show-user', args=[user.id]))
user = User.objects.get(pk=user.pk)
self.assertEqual(user.first_name, 'newfirstname')
def test_user_disable_activate(self):
user = User.objects.get(username='user1')
response = self.client.get(reverse('disable-user', args=[user.id]))
self.assertRedirects(response, reverse('show-user', args=[user.id]))
user = User.objects.get(pk=user.pk)
self.assertFalse(user.is_active)
response = self.client.get(reverse('activate-user', args=[user.id]))
self.assertRedirects(response, reverse('show-user', args=[user.id]))
user = User.objects.get(pk=user.pk)
self.assertTrue(user.is_active)
def test_user_edit_password(self):
user = User.objects.get(username='user1')
self.assertTrue(user.check_password("user1"))
response = self.client.post(reverse('edit-user-password', args=[user.id]), {
'password1': 'newpassword',
'password2': 'newpassword',
})
self.assertRedirects(response, reverse('show-user', args=[user.id]))
user = User.objects.get(username='user1')
self.assertTrue(user.check_password('newpassword'))
def test_user_delete_get(self):
user_count = User.objects.count()
user = User.objects.get(username='user1')
response = self.client.get(reverse('delete-user', args=[user.id]))
self.assertEqual(response.status_code, 405) # method not allowed
self.assertEqual(User.objects.count(), user_count)
def test_user_delete_post(self):
user_count = User.objects.count()
user = User.objects.get(username='user1')
response = self.client.post(reverse('delete-user', args=[user.id]))
self.assertRedirects(response, reverse('list-user'))
self.assertEqual(User.objects.count(), user_count - 1)
def test_user_add_group(self):
user = User.objects.get(username='user1')
group = Group.objects.create(name='newgroup')
response = self.client.get(reverse('add-group-to-user', args=[user.id]) + '?term=new')
self.assertEqual(response.status_code, 200)
available = json.loads(response.content.decode('utf-8'))
name = available[0]['value']
response = self.client.post(reverse('add-group-to-user', args=[user.id]), {
'group': name,
})
self.assertRedirects(response, reverse('show-user', args=[user.id]))
user = User.objects.get(pk=user.pk)
self.assertTrue(group in user.groups.all())
def test_user_remove_group(self):
user = User.objects.get(username='user1')
group = user.groups.first()
response = self.client.get(reverse('remove-group-from-user', args=[user.id, group.id]))
self.assertEqual(response.status_code, 200)
user = User.objects.get(pk=user.pk)
self.assertFalse(group in user.groups.all())
def test_user_add_team(self):
user = User.objects.get(username='user1')
team = Team.objects.create(name='newteam')
response = self.client.get(reverse('add-team-to-user', args=[user.id]) + '?term=new')
self.assertEqual(response.status_code, 200)
available = json.loads(response.content.decode('utf-8'))
name = available[0]['value']
response = self.client.post(reverse('add-team-to-user', args=[user.id]), {
'team': name,
})
self.assertRedirects(response, reverse('show-user', args=[user.id]))
team = Team.objects.get(pk=team.pk)
self.assertTrue(user in team.users.all())
def test_user_remove_team(self):
user = User.objects.get(username='user1')
team = user.teams.first()
response = self.client.get(reverse('remove-team-from-user', args=[user.id, team.id]))
self.assertEqual(response.status_code, 200)
team = Team.objects.get(pk=team.pk)
self.assertFalse(user in team.users.all())
# Group
def test_group_list(self):
response = self.client.get(reverse('list-group'))
self.assertEqual(response.status_code, 200)
self.assertContains(response, "group1")
def test_group_details(self):
group = Group.objects.get(name="group1")
response = self.client.get(reverse('show-group', args=[group.id]))
self.assertEqual(response.status_code, 200)
self.assertContains(response, "user1")
def test_group_add(self):
group_count = Group.objects.count()
response = self.client.post(reverse('add-group'), {
'name': 'newgroup',
})
self.assertEqual(Group.objects.count(), group_count + 1)
group = Group.objects.get(name='newgroup')
self.assertRedirects(response, reverse('show-group', args=[group.id]))
def test_group_edit(self):
group = Group.objects.get(name='group1')
response = self.client.post(reverse('edit-group', args=[group.id]), {
'name': 'newname',
})
self.assertRedirects(response, reverse('show-group', args=[group.id]))
group = Group.objects.get(pk=group.pk)
self.assertEqual(group.name, 'newname')
def test_group_delete_get(self):
group_count = Group.objects.count()
group = Group.objects.get(name='group1')
response = self.client.get(reverse('delete-group', args=[group.id]))
self.assertEqual(response.status_code, 405) # method not allowed
self.assertEqual(Group.objects.count(), group_count)
def test_group_delete_post(self):
group_count = Group.objects.count()
group = Group.objects.get(name='group1')
response = self.client.post(reverse('delete-group', args=[group.id]))
self.assertRedirects(response, reverse('list-group'))
self.assertEqual(Group.objects.count(), group_count - 1)
def test_group_add_user(self):
group = Group.objects.get(name='group1')
user = User.objects.create(username='newuser')
response = self.client.get(reverse('add-user-to-group', args=[group.id]) + '?term=new')
self.assertEqual(response.status_code, 200)
available = json.loads(response.content.decode('utf-8'))
name = available[0]['value']
response = self.client.post(reverse('add-user-to-group', args=[group.id]), {
'user': name,
})
self.assertRedirects(response, reverse('show-group', args=[group.id]))
user = User.objects.get(pk=user.pk)
self.assertTrue(group in user.groups.all())
def test_group_remove_user(self):
user = User.objects.get(username='user1')
group = user.groups.first()
response = self.client.get(reverse('remove-user-from-group', args=[group.id, user.id]))
self.assertEqual(response.status_code, 200)
user = User.objects.get(pk=user.pk)
self.assertFalse(group in user.groups.all())
# Team
def test_team_list(self):
response = self.client.get(reverse('list-team'))
self.assertEqual(response.status_code, 200)
self.assertContains(response, 'team1')
self.assertContains(response, 'team2')
def test_team_details(self):
team = Team.objects.get(name="team2")
response = self.client.get(reverse('show-team', args=[team.id]))
self.assertEqual(response.status_code, 200)
self.assertContains(response, "user2")
self.assertContains(response, "group2")
def test_team_add(self):
team_count = Team.objects.count()
response = self.client.post(reverse('add-team'), {
'name': 'newteam',
})
self.assertEqual(Team.objects.count(), team_count + 1)
team = Team.objects.get(name='newteam')
self.assertRedirects(response, reverse('show-team', args=[team.id]))
def test_team_edit(self):
team = Team.objects.get(name='team1')
response = self.client.post(reverse('edit-team', args=[team.id]), {
'name': 'newname',
})
self.assertRedirects(response, reverse('show-team', args=[team.id]))
team = Team.objects.get(pk=team.pk)
self.assertEqual(team.name, 'newname')
def test_team_delete_get(self):
team_count = Team.objects.count()
team = Team.objects.get(name='team1')
response = self.client.get(reverse('delete-team', args=[team.id]))
self.assertEqual(response.status_code, 405) # method not allowed
self.assertEqual(Team.objects.count(), team_count)
def test_team_delete_post(self):
team_count = Team.objects.count()
team = Team.objects.get(name='team1')
response = self.client.post(reverse('delete-team', args=[team.id]))
self.assertRedirects(response, reverse('list-team'))
self.assertEqual(Team.objects.count(), team_count - 1)
def test_team_add_user(self):
team = Team.objects.get(name='team2')
user = User.objects.create(username='newuser')
response = self.client.get(reverse('add-user-to-team', args=[team.id]) + '?term=new')
self.assertEqual(response.status_code, 200)
available = json.loads(response.content.decode('utf-8'))
name = available[0]['value']
response = self.client.post(reverse('add-user-to-team', args=[team.id]), {
'user': name,
})
self.assertRedirects(response, reverse('show-team', args=[team.id]))
team = Team.objects.get(pk=team.pk)
self.assertTrue(user in team.users.all())
def test_team_remove_user(self):
team = Team.objects.get(name='team2')
user = team.users.first()
response = self.client.get(reverse('remove-user-from-team', args=[team.id, user.id]))
self.assertEqual(response.status_code, 200)
team = Team.objects.get(pk=team.pk)
self.assertFalse(user in team.users.all())
def test_team_add_group(self):
team = Team.objects.get(name='team2')
group = Group.objects.create(name='newgroup')
response = self.client.get(reverse('add-group-to-team', args=[team.id]) + '?term=new')
self.assertEqual(response.status_code, 200)
available = json.loads(response.content.decode('utf-8'))
name = available[0]['value']
response = self.client.post(reverse('add-group-to-team', args=[team.id]), {
'group': name,
})
self.assertRedirects(response, reverse('show-team', args=[team.id]))
team = Team.objects.get(pk=team.pk)
self.assertTrue(group in team.groups.all())
def test_team_remove_group(self):
team = Team.objects.get(name='team2')
group = team.groups.first()
response = self.client.get(reverse('remove-group-from-team', args=[team.id, group.id]))
self.assertEqual(response.status_code, 200)
team = Team.objects.get(pk=team.pk)
self.assertFalse(group in team.groups.all())