fix django 1.6 compatibility

This commit is contained in:
Élie Bouttier 2014-09-06 11:42:26 -07:00
parent d58bfacf10
commit 93a16087ca
3 changed files with 66 additions and 34 deletions

View file

@ -9,17 +9,16 @@ env:
- DJANGO='1.7' - DJANGO='1.7'
install: install:
- if [[ $DJANGO == '1.6' ]]; then pip install django==1.6; fi - if [[ $DJANGO == '1.6' && $TRAVIS_PYTHON_VERSION == 3.4 ]]; then pip install django==1.6; fi
- if [[ $DJANGO != '1.6' ]]; then pip install -e git+git://github.com/django/django.git@1.7c2#egg=django1.7rc2; fi
- pip install -r requirements.txt - pip install -r requirements.txt
- if [[ $DJANGO == '1.6' ]]; then pip install coveralls; fi - if [[ $DJANGO == '1.6' && $TRAVIS_PYTHON_VERSION == 3.4 ]]; then pip install coveralls; fi
script: script:
- if [[ $DJANGO == '1.6' ]]; then coverage run --branch --source=accounts,permissions,tracker --omit=accounts/migrations/*.py,permissions/migrations/*.py,tracker/migrations/*.py manage.py test; fi - if [[ $DJANGO == '1.6' && $TRAVIS_PYTHON_VERSION == 3.4 ]]; then coverage run --branch --source=accounts,permissions,tracker --omit=accounts/migrations/*.py,permissions/migrations/*.py,tracker/migrations/*.py manage.py test; fi
- if [[ $DJANGO != '1.6' ]]; then python manage.py test; fi - if [[ $DJANGO != '1.6' || $TRAVIS_PYTHON_VERSION != 3.4 ]]; then python manage.py test; fi
after_success: after_success:
if [[ $DJANGO == '1.6' ]]; then coveralls; fi if [[ $DJANGO == '1.6' && $TRAVIS_PYTHON_VERSION == 3.4 ]]; then coveralls; fi
notifications: notifications:
irc: irc:

View file

@ -1,7 +1,8 @@
import json
from django.test import TestCase from django.test import TestCase
from django.core.urlresolvers import reverse from django.core.urlresolvers import reverse
from django import VERSION
import json
from accounts.models import * from accounts.models import *
@ -47,7 +48,11 @@ class TestViews(TestCase):
'new_password1': 'newpassword', 'new_password1': 'newpassword',
'new_password2': 'newpassword', 'new_password2': 'newpassword',
}, follow=True) }, follow=True)
self.assertRedirects(response, reverse('login')+'?next='+reverse('profile')) if VERSION >= (1, 7):
# since django 1.7, session are invalid after a password change
self.assertRedirects(response, reverse('login')+'?next='+reverse('profile'))
else:
self.assertRedirects(response, reverse('profile'))
self.assertContains(response, 'Password updated successfully') self.assertContains(response, 'Password updated successfully')
user = User.objects.get(username='admin') user = User.objects.get(username='admin')
self.assertTrue(user.check_password('newpassword')) self.assertTrue(user.check_password('newpassword'))
@ -159,7 +164,7 @@ class TestViews(TestCase):
}) })
self.assertRedirects(response, reverse('show-user', args=[user.id])) self.assertRedirects(response, reverse('show-user', args=[user.id]))
user = User.objects.get(pk=user.pk) user = User.objects.get(pk=user.pk)
self.assertTrue(group in user.groups.all()) self.assertTrue(user.groups.filter(pk=group.pk).exists())
def test_user_remove_group(self): def test_user_remove_group(self):
user = User.objects.get(username='user1') user = User.objects.get(username='user1')
@ -168,11 +173,11 @@ class TestViews(TestCase):
response = self.client.get(reverse('remove-group-from-user', args=[user.id, group.id])) response = self.client.get(reverse('remove-group-from-user', args=[user.id, group.id]))
self.assertEqual(response.status_code, 404) self.assertEqual(response.status_code, 404)
user = User.objects.get(pk=user.pk) user = User.objects.get(pk=user.pk)
self.assertTrue(group in user.groups.all()) self.assertTrue(user.groups.filter(pk=group.pk).exists())
response = self.client.get(reverse('remove-group-from-user', args=[user.id, group.id])) response = self.client.get(reverse('remove-group-from-user', args=[user.id, group.id]))
self.assertEqual(response.status_code, 200) self.assertEqual(response.status_code, 200)
user = User.objects.get(pk=user.pk) user = User.objects.get(pk=user.pk)
self.assertFalse(group in user.groups.all()) self.assertFalse(user.groups.filter(pk=group.pk).exists())
def test_user_add_team(self): def test_user_add_team(self):
user = User.objects.get(username='user1') user = User.objects.get(username='user1')
@ -188,7 +193,7 @@ class TestViews(TestCase):
}) })
self.assertRedirects(response, reverse('show-user', args=[user.id])) self.assertRedirects(response, reverse('show-user', args=[user.id]))
team = Team.objects.get(pk=team.pk) team = Team.objects.get(pk=team.pk)
self.assertTrue(user in team.users.all()) self.assertTrue(team.users.filter(pk=user.pk).exists())
def test_user_remove_team(self): def test_user_remove_team(self):
user = User.objects.get(username='user1') user = User.objects.get(username='user1')
@ -196,7 +201,7 @@ class TestViews(TestCase):
response = self.client.get(reverse('remove-team-from-user', args=[user.id, team.id])) response = self.client.get(reverse('remove-team-from-user', args=[user.id, team.id]))
self.assertEqual(response.status_code, 200) self.assertEqual(response.status_code, 200)
team = Team.objects.get(pk=team.pk) team = Team.objects.get(pk=team.pk)
self.assertFalse(user in team.users.all()) self.assertFalse(team.users.filter(pk=user.pk).exists())
# Group # Group
@ -257,7 +262,7 @@ class TestViews(TestCase):
response = self.client.get(reverse('add-user-to-group', args=[group.id]) + '?query=new') response = self.client.get(reverse('add-user-to-group', args=[group.id]) + '?query=new')
self.assertEqual(response.status_code, 404) self.assertEqual(response.status_code, 404)
user = User.objects.get(pk=user.pk) user = User.objects.get(pk=user.pk)
self.assertFalse(group in user.groups.all()) self.assertFalse(user.groups.filter(pk=group.pk).exists())
response = self.client.get(reverse('add-user-to-group', args=[group.id])) response = self.client.get(reverse('add-user-to-group', args=[group.id]))
self.assertEqual(response.status_code, 404) self.assertEqual(response.status_code, 404)
response = self.client.get(reverse('add-user-to-group', args=[group.id]) + '?query=new') response = self.client.get(reverse('add-user-to-group', args=[group.id]) + '?query=new')
@ -269,7 +274,7 @@ class TestViews(TestCase):
}) })
self.assertRedirects(response, reverse('show-group', args=[group.id])) self.assertRedirects(response, reverse('show-group', args=[group.id]))
user = User.objects.get(pk=user.pk) user = User.objects.get(pk=user.pk)
self.assertTrue(group in user.groups.all()) self.assertTrue(user.groups.filter(pk=group.pk).exists())
def test_group_remove_user(self): def test_group_remove_user(self):
user = User.objects.get(username='user1') user = User.objects.get(username='user1')
@ -278,11 +283,10 @@ class TestViews(TestCase):
response = self.client.get(reverse('remove-user-from-group', args=[group.id, user.id])) response = self.client.get(reverse('remove-user-from-group', args=[group.id, user.id]))
self.assertEqual(response.status_code, 404) self.assertEqual(response.status_code, 404)
user = User.objects.get(pk=user.pk) user = User.objects.get(pk=user.pk)
self.assertTrue(group in user.groups.all()) self.assertTrue(user.groups.filter(pk=group.pk).exists())
response = self.client.get(reverse('remove-user-from-group', args=[group.id, user.id])) response = self.client.get(reverse('remove-user-from-group', args=[group.id, user.id]))
self.assertEqual(response.status_code, 200) self.assertEqual(response.status_code, 200)
user = User.objects.get(pk=user.pk) self.assertFalse(user.groups.filter(pk=group.pk).exists())
self.assertFalse(group in user.groups.all())
# Team # Team
@ -345,7 +349,7 @@ class TestViews(TestCase):
}) })
self.assertRedirects(response, reverse('show-team', args=[team.id])) self.assertRedirects(response, reverse('show-team', args=[team.id]))
team = Team.objects.get(pk=team.pk) team = Team.objects.get(pk=team.pk)
self.assertTrue(user in team.users.all()) self.assertTrue(team.users.filter(pk=user.pk).exists())
def test_team_remove_user(self): def test_team_remove_user(self):
team = Team.objects.get(name='team2') team = Team.objects.get(name='team2')
@ -353,7 +357,7 @@ class TestViews(TestCase):
response = self.client.get(reverse('remove-user-from-team', args=[team.id, user.id])) response = self.client.get(reverse('remove-user-from-team', args=[team.id, user.id]))
self.assertEqual(response.status_code, 200) self.assertEqual(response.status_code, 200)
team = Team.objects.get(pk=team.pk) team = Team.objects.get(pk=team.pk)
self.assertFalse(user in team.users.all()) self.assertFalse(team.users.filter(pk=user.pk).exists())
def test_team_add_group(self): def test_team_add_group(self):
team = Team.objects.get(name='team2') team = Team.objects.get(name='team2')
@ -369,7 +373,7 @@ class TestViews(TestCase):
}) })
self.assertRedirects(response, reverse('show-team', args=[team.id])) self.assertRedirects(response, reverse('show-team', args=[team.id]))
team = Team.objects.get(pk=team.pk) team = Team.objects.get(pk=team.pk)
self.assertTrue(group in team.groups.all()) self.assertTrue(team.groups.filter(pk=group.pk).exists())
def test_team_remove_group(self): def test_team_remove_group(self):
team = Team.objects.get(name='team2') team = Team.objects.get(name='team2')
@ -377,7 +381,7 @@ class TestViews(TestCase):
response = self.client.get(reverse('remove-group-from-team', args=[team.id, group.id])) response = self.client.get(reverse('remove-group-from-team', args=[team.id, group.id]))
self.assertEqual(response.status_code, 200) self.assertEqual(response.status_code, 200)
team = Team.objects.get(pk=team.pk) team = Team.objects.get(pk=team.pk)
self.assertFalse(group in team.groups.all()) self.assertFalse(team.groups.filter(pk=group.pk).exists())
class TestModels(TestCase): class TestModels(TestCase):

View file

@ -7,8 +7,13 @@ from django.db.models import Q
from django.core.exceptions import ObjectDoesNotExist from django.core.exceptions import ObjectDoesNotExist
from django.conf import settings from django.conf import settings
from django.contrib.auth.forms import PasswordChangeForm from django.contrib.auth.forms import PasswordChangeForm
from django import VERSION
from django.http import Http404, HttpResponse, JsonResponse from django.http import Http404, HttpResponse
if VERSION >= (1, 7):
from django.http import JsonResponse
else:
import json
from permissions.decorators import project_perm_required from permissions.decorators import project_perm_required
@ -186,9 +191,13 @@ def user_add_group(request, user):
'value': group.name, 'value': group.name,
'data': group.name, 'data': group.name,
}] }]
return JsonResponse({ c = {
'suggestions': response, 'suggestions': response,
}, safe=False) }
if VERSION >= (1, 7):
return JsonResponse(c, safe=False)
else:
return HttpResponse(json.dumps(c), content_type="application/json")
@project_perm_required('manage_accounts') @project_perm_required('manage_accounts')
@ -239,9 +248,13 @@ def user_add_team(request, user):
'value': team.name, 'value': team.name,
'data': team.name, 'data': team.name,
}] }]
return JsonResponse({ c = {
'suggestions': response, 'suggestions': response,
}, safe=False) }
if VERSION >= (1, 7):
return JsonResponse(c, safe=False)
else:
return HttpResponse(json.dumps(c), content_type="application/json")
@project_perm_required('manage_accounts') @project_perm_required('manage_accounts')
@ -321,17 +334,21 @@ def group_add_user(request, group):
try: try:
user = User.objects.get(username=user) user = User.objects.get(username=user)
except ObjectDoesNotExist: except ObjectDoesNotExist:
print('user not found')
messages.error(request, 'User not found.') messages.error(request, 'User not found.')
else: else:
if group.users.filter(id=user.id).exists(): if group.users.filter(id=user.id).exists():
print('already exist')
messages.info(request, 'User already in group.') messages.info(request, 'User already in group.')
else: else:
user.groups.add(group) user.groups.add(group)
user.save() user.save()
messages.success(request, messages.success(request,
'User added to group successfully.') 'User added to group successfully.')
print('huge success')
else: else:
messages.error(request, 'User not found.') messages.error(request, 'User not found.')
print('not found 2')
return redirect('show-group', group.id) return redirect('show-group', group.id)
else: else:
term = request.GET.get('query') term = request.GET.get('query')
@ -347,9 +364,13 @@ def group_add_user(request, group):
'value': user.username_and_fullname, 'value': user.username_and_fullname,
'data': user.username, 'data': user.username,
}] }]
return JsonResponse({ c = {
'suggestions': response, 'suggestions': response,
}, safe=False) }
if VERSION >= (1, 7):
return JsonResponse(c, safe=False)
else:
return HttpResponse(json.dumps(c), content_type="application/json")
@project_perm_required('manage_accounts') @project_perm_required('manage_accounts')
@ -454,9 +475,13 @@ def team_add_user(request, team):
'value': user.username_and_fullname, 'value': user.username_and_fullname,
'data': user.username, 'data': user.username,
}] }]
return JsonResponse({ c = {
'suggestions': response, 'suggestions': response,
}, safe=False) }
if VERSION >= (1, 7):
return JsonResponse(c, safe=False)
else:
return HttpResponse(json.dumps(c), content_type="application/json")
@project_perm_required('manage_accounts') @project_perm_required('manage_accounts')
@ -503,9 +528,13 @@ def team_add_group(request, team):
'value': group.name, 'value': group.name,
'data': group.name, 'data': group.name,
}] }]
return JsonResponse({ c = {
'suggestions': response, 'suggestions': response,
}, safe=False) }
if VERSION >= (1, 7):
return JsonResponse(c, safe=False)
else:
return HttpResponse(json.dumps(c), content_type="application/json")
@project_perm_required('manage_accounts') @project_perm_required('manage_accounts')