datatracker/ietf/secr/groups/tests.py
Ole Laursen d86789608a Remove use of "groupgroup" fixture from Secretariat apps, it looks
like they don't actually depend on it, and the fixture itself is
unfortunately not complete so Django refuses to load it
 - Legacy-Id: 6938
2013-12-16 13:16:29 +00:00

127 lines
5.3 KiB
Python

from django.core.urlresolvers import reverse
from ietf.utils import TestCase
from ietf.group.models import Group
from ietf.person.models import Person
from ietf.utils.test_data import make_test_data
import debug
SECR_USER='secretary'
class GroupsTest(TestCase):
# ------- Test Search -------- #
def test_search(self):
"Test Search"
draft = make_test_data()
group = Group.objects.all()[0]
url = reverse('groups_search')
post_data = {'group_acronym':group.acronym,'submit':'Search'}
response = self.client.post(url,post_data,follow=True, REMOTE_USER=SECR_USER)
#assert False, response.content
self.assertEquals(response.status_code, 200)
self.failUnless(group.acronym in response.content)
# ------- Test Add -------- #
def test_add_button(self):
url = reverse('groups_search')
target = reverse('groups_add')
post_data = {'submit':'Add'}
response = self.client.post(url,post_data,follow=True, REMOTE_USER=SECR_USER)
self.assertRedirects(response, target)
def test_add_group_invalid(self):
url = reverse('groups_add')
post_data = {'acronym':'test',
'type':'wg',
'awp-TOTAL_FORMS':'2',
'awp-INITIAL_FORMS':'0',
'submit':'Save'}
response = self.client.post(url,post_data, REMOTE_USER=SECR_USER)
self.assertEquals(response.status_code, 200)
self.failUnless('This field is required' in response.content)
def test_add_group_dupe(self):
draft = make_test_data()
group = Group.objects.all()[0]
area = Group.objects.filter(type='area')[0]
url = reverse('groups_add')
post_data = {'acronym':group.acronym,
'name':'Test Group',
'state':'active',
'type':'wg',
'parent':area.id,
'awp-TOTAL_FORMS':'2',
'awp-INITIAL_FORMS':'0',
'submit':'Save'}
response = self.client.post(url,post_data, REMOTE_USER=SECR_USER)
#print response.content
self.assertEquals(response.status_code, 200)
self.failUnless('Group with this Acronym already exists' in response.content)
def test_add_group_success(self):
draft = make_test_data()
area = Group.objects.filter(type='area')[0]
url = reverse('groups_add')
post_data = {'acronym':'test',
'name':'Test Group',
'type':'wg',
'status':'active',
'parent':area.id,
'awp-TOTAL_FORMS':'2',
'awp-INITIAL_FORMS':'0',
'submit':'Save'}
response = self.client.post(url,post_data, REMOTE_USER=SECR_USER)
self.assertEquals(response.status_code, 200)
# ------- Test View -------- #
def test_view(self):
draft = make_test_data()
group = Group.objects.all()[0]
url = reverse('groups_view', kwargs={'acronym':group.acronym})
response = self.client.get(url)
self.assertEquals(response.status_code, 200)
# ------- Test Edit -------- #
def test_edit_valid(self):
draft = make_test_data()
group = Group.objects.filter(acronym='mars')[0]
area = Group.objects.filter(acronym='farfut')[0]
ad = Person.objects.get(name='Aread Irector')
url = reverse('groups_edit', kwargs={'acronym':group.acronym})
target = reverse('groups_view', kwargs={'acronym':group.acronym})
post_data = {'acronym':group.acronym,
'name':group.name,
'type':'wg',
'state':group.state_id,
'parent':area.id,
'ad':ad.id,
'groupurl_set-TOTAL_FORMS':'2',
'groupurl_set-INITIAL_FORMS':'0',
'submit':'Save'}
response = self.client.post(url,post_data,follow=True, REMOTE_USER=SECR_USER)
self.assertRedirects(response, target)
self.failUnless('changed successfully' in response.content)
# ------- Test People -------- #
def test_people_delete(self):
draft = make_test_data()
group = Group.objects.filter(acronym='mars')[0]
role = group.role_set.all()[0]
url = reverse('groups_delete_role', kwargs={'acronym':group.acronym,'id':role.id})
target = reverse('groups_people', kwargs={'acronym':group.acronym})
response = self.client.get(url,follow=True, REMOTE_USER=SECR_USER)
self.assertRedirects(response, target)
self.failUnless('deleted successfully' in response.content)
def test_people_add(self):
draft = make_test_data()
person = Person.objects.get(name='Aread Irector')
group = Group.objects.filter(acronym='mars')[0]
url = reverse('groups_people', kwargs={'acronym':group.acronym})
post_data = {'name':'chair',
'person':'Joe Smith - (%s)' % person.id,
'email':person.email_set.all()[0].address,
'submit':'Add'}
response = self.client.post(url,post_data,follow=True, REMOTE_USER=SECR_USER)
self.assertRedirects(response, url)
self.failUnless('added successfully' in response.content)