add basic tests

- Legacy-Id: 5437
This commit is contained in:
Ryan Cross 2013-02-21 00:41:04 +00:00
parent a0f548ea6b
commit c32aee9874
12 changed files with 317 additions and 251 deletions

View file

@ -1,3 +1,4 @@
from django.db import connection
from django.core.urlresolvers import reverse
from django.test import TestCase
from django.contrib.auth.models import User
@ -6,39 +7,41 @@ from ietf.group.models import Group
from ietf.ietfauth.decorators import has_role
from ietf.person.models import Person
from ietf.utils.mail import outbox
from ietf.utils.test_data import make_test_data
from ietf.utils.test_utils import SimpleUrlTestCase, RealDatabaseTest
from pyquery import PyQuery
SEC_USER='rcross'
SEC_USER='secretary'
WG_USER=''
AD_USER=''
#class AnnouncementUrlTestCase(SimpleUrlTestCase):
# def testUrls(self):
# self.doTestUrls(__file__)
class MainTestCase(TestCase):
fixtures = ['names',
'test-meeting',
'test-group',
'test-person',
'test-user',
'test-email',
'test-role']
fixtures = ['names']
# ------- Test View -------- #
def test_main(self):
"Main Test"
draft = make_test_data()
url = reverse('announcement')
r = self.client.get(url,REMOTE_USER=SEC_USER)
self.assertEquals(r.status_code, 200)
class DummyCase(TestCase):
name = connection.settings_dict['NAME']
print name
class UnauthorizedCase(TestCase):
fixtures = ['names',
'test-group',
'test-person',
'test-user',
'test-email',
'test-role']
fixtures = ['names']
def test_unauthorized(self):
"Unauthorized Test"
draft = make_test_data()
url = reverse('announcement')
# get random working group chair
person = Person.objects.filter(role__group__type='wg')[0]
@ -46,16 +49,11 @@ class UnauthorizedCase(TestCase):
self.assertEquals(r.status_code, 403)
class SubmitCase(TestCase):
fixtures = ['names',
'test-meeting',
'test-group',
'test-person',
'test-user',
'test-email',
'test-role']
fixtures = ['names']
def test_invalid_submit(self):
"Invalid Submit"
draft = make_test_data()
url = reverse('announcement')
post_data = {'id_subject':''}
#self.client.login(remote_user='rcross')
@ -66,9 +64,10 @@ class SubmitCase(TestCase):
def test_valid_submit(self):
"Valid Submit"
draft = make_test_data()
#ietf.utils.mail.test_mode = True
url = reverse('announcement')
redirect = reverse('home')
redirect = reverse('announcement_confirm')
post_data = {'to':'Other...',
'to_custom':'rcross@amsl.com',
'frm':'IETF Secretariat <ietf-secretariat@ietf.org>',
@ -76,5 +75,6 @@ class SubmitCase(TestCase):
'body':'This is a test.'}
r = self.client.post(url,post_data,follow=True,REMOTE_USER=SEC_USER)
self.assertRedirects(r, redirect)
self.assertEqual(len(outbox), 1)
#self.assertTrue(len(outbox) > mailbox_before)
# good enough if we get to confirm page
#self.assertEqual(len(outbox), 1)
#self.assertTrue(len(outbox) > mailbox_before)

View file

@ -2,33 +2,37 @@ from django.core.urlresolvers import reverse
from django.test import TestCase
from django.contrib.auth.models import User
from ietf.group.models import Group
from ietf.group.models import Group, GroupEvent
from ietf.ietfauth.decorators import has_role
from ietf.person.models import Person
from ietf.utils.mail import outbox
from ietf.utils.test_data import make_test_data
from pyquery import PyQuery
SEC_USER='rcross'
WG_USER=''
AD_USER=''
import datetime
SEC_USER='secretary'
def augment_data():
area = Group.objects.get(acronym='farfut')
GroupEvent.objects.create(group=area,
type='started',
by_id=0)
class MainTestCase(TestCase):
fixtures = ['names',
'test-group',
'test-person',
'test-user',
'test-email',
'test-role']
fixtures = ['names']
def test_main(self):
"Main Test"
draft = make_test_data()
url = reverse('areas')
response = self.client.get(url,REMOTE_USER=SEC_USER)
self.assertEquals(response.status_code, 200)
def test_view(self):
"View Test"
draft = make_test_data()
augment_data()
areas = Group.objects.filter(type='area',state='active')
url = reverse('areas_view', kwargs={'name':areas[0].acronym})
response = self.client.get(url,REMOTE_USER=SEC_USER)

View file

@ -1,14 +1,27 @@
from django.core.urlresolvers import reverse
from django.test import TestCase
from ietf.secr.drafts.models import *
class DraftsTest(TestCase):
from ietf.doc.models import Document
from ietf.utils.test_data import make_test_data
# ------- Test View -------- #
def test_search(self):
url = reverse('drafts_search')
response = self.client.get(url)
from pyquery import PyQuery
SEC_USER='secretary'
class MainTestCase(TestCase):
fixtures = ['names']
def test_main(self):
"Main Test"
draft = make_test_data()
url = reverse('drafts')
response = self.client.get(url,REMOTE_USER=SEC_USER)
self.assertEquals(response.status_code, 200)
# test draft revision wrong basename
# test draft revision wrong rev number
def test_view(self):
"View Test"
draft = make_test_data()
drafts = Document.objects.filter(type='draft')
url = reverse('drafts_view', kwargs={'id':drafts[0].name})
response = self.client.get(url,REMOTE_USER=SEC_USER)
self.assertEquals(response.status_code, 200)

View file

@ -1,181 +1,138 @@
from django.core.urlresolvers import reverse
from django.test import TestCase
from ietf.secr.groups.models import *
from ietf.group.models import Group
from ietf.person.models import Person
from ietf.utils.test_data import make_test_data
SEC_USER='secretary'
class GroupsTest(TestCase):
fixtures = ['names']
"""
fixtures = [ 'acronym.json',
'area.json',
'areadirector',
'areagroup.json',
'goalmilestone',
'iesglogin.json',
'ietfwg',
'personororginfo.json',
'ietfwg',
'personororginfo.json',
'wgchair.json',
'wgstatus.json',
'wgtype.json' ]
'wgstatus.json',
'wgtype.json' ]
"""
# ------- Test Search -------- #
def test_search(self):
"Test Search"
group = IETFWG.objects.all()[0]
draft = make_test_data()
group = Group.objects.all()[0]
url = reverse('groups_search')
post_data = {'group_acronym':group.group_acronym.acronym,'submit':'Search'}
response = self.client.post(url,post_data,REMOTE_USER='rcross')
post_data = {'group_acronym':group.acronym,'submit':'Search'}
response = self.client.post(url,post_data,follow=True,REMOTE_USER=SEC_USER)
#assert False, response.content
self.assertEquals(response.status_code, 200)
self.failUnless(group.group_acronym.name in response.content)
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='rcross')
response = self.client.post(url,post_data,follow=True,REMOTE_USER=SEC_USER)
self.assertRedirects(response, target)
def test_add_group_invalid(self):
url = reverse('groups_add')
post_data = {'group_acronym':'test',
'group_type':'2',
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='rcross')
response = self.client.post(url,post_data,REMOTE_USER=SEC_USER)
self.assertEquals(response.status_code, 200)
self.failUnless('This field is required' in response.content)
def test_add_group_dupe(self):
group = IETFWG.objects.all()[0]
draft = make_test_data()
group = Group.objects.all()[0]
area = Group.objects.filter(type='area')[0]
url = reverse('groups_add')
post_data = {'group_acronym':group.group_acronym.acronym,
'group_type':'2',
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='rcross')
response = self.client.post(url,post_data,REMOTE_USER=SEC_USER)
#print response.content
self.assertEquals(response.status_code, 200)
self.failUnless('This acronym already exists' in response.content)
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 = {'group_acronym':'test',
'group_name':'Test Group',
'group_type':'2',
'status':'1',
'primary_area':'934',
'primary_area_director':'139',
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='rcross')
response = self.client.post(url,post_data,REMOTE_USER=SEC_USER)
self.assertEquals(response.status_code, 200)
# ------- Test View -------- #
def test_view(self):
group = IETFWG.objects.all()[0]
url = reverse('groups_view', kwargs={'id':group.group_acronym.acronym_id})
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):
group = IETFWG.objects.all()[0]
url = reverse('groups_edit', kwargs={'id':group.group_acronym.acronym_id})
target = reverse('groups_view', kwargs={'id':group.group_acronym.acronym_id})
post_data = {'acronym':group.group_acronym.acronym,
'name':group.group_acronym.name,
'ietfwg-0-group_acronym':group.group_acronym.acronym_id,
'ietfwg-0-status':group.status.status_id,
'ietfwg-0-group_type':group.group_type.group_type_id,
'ietfwg-0-start_date':group.start_date,
'ietfwg-0-primary_area':group.area_director.area.area_acronym.acronym_id,
'ietfwg-0-area_director':group.area_director.id,
'ietfwg-TOTAL_FORMS':'1',
'ietfwg-INITIAL_FORMS':'1',
'wgawp_set-TOTAL_FORMS':'2',
'wgawp_set-INITIAL_FORMS':'0',
draft = make_test_data()
group = Group.objects.filter(type='wg')[0]
area = Group.objects.filter(type='area')[0]
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':2,
'groupurl_set-TOTAL_FORMS':'2',
'groupurl_set-INITIAL_FORMS':'0',
'submit':'Save'}
response = self.client.post(url,post_data,follow=True,REMOTE_USER='rcross')
response = self.client.post(url,post_data,follow=True,REMOTE_USER=SEC_USER)
self.assertRedirects(response, target)
self.failUnless('changed successfully' in response.content)
def test_edit_invalid(self):
group = IETFWG.objects.all()[0]
url = reverse('groups_edit', kwargs={'id':group.group_acronym.acronym_id})
target = reverse('groups_view', kwargs={'id':group.group_acronym.acronym_id})
post_data = {'acronym':group.group_acronym.acronym,
'name':group.group_acronym.name,
'ietfwg-0-group_acronym':group.group_acronym.acronym_id,
'ietfwg-0-status':group.status.status_id,
'ietfwg-0-group_type':group.group_type.group_type_id,
'ietfwg-0-start_date':'invalid date',
'ietfwg-0-primary_area':group.area_director.area.area_acronym.acronym_id,
'ietfwg-0-area_director':group.area_director.id,
'ietfwg-TOTAL_FORMS':'1',
'ietfwg-INITIAL_FORMS':'1',
'wgawp_set-TOTAL_FORMS':'2',
'wgawp_set-INITIAL_FORMS':'0',
'submit':'Save'}
response = self.client.post(url,post_data,follow=True,REMOTE_USER='rcross')
self.assertEquals(response.status_code, 200)
self.failUnless('Enter a valid date' in response.content)
# ------- Test People -------- #
def test_people_delete(self):
group = IETFWG.objects.all()[0]
url = reverse('groups_people_delete', kwargs={'id':group.group_acronym.acronym_id})
target = reverse('groups_people', kwargs={'id':group.group_acronym.acronym_id})
post_data = {'tag':'104557',
'table':'WGChair',
'submit':'Delete'}
response = self.client.post(url,post_data,follow=True,REMOTE_USER='rcross')
draft = make_test_data()
group = Group.objects.filter(type='wg')[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=SEC_USER)
self.assertRedirects(response, target)
self.failUnless('deleted successfully' in response.content)
def test_people_add(self):
group = IETFWG.objects.all()[0]
url = reverse('groups_people', kwargs={'id':group.group_acronym.acronym_id})
post_data = {'role_type':'WGChair',
'role_name':'Jon Peterson - jon.peterson@neustar.biz (104557)',
'group':'1744',
draft = make_test_data()
person = Person.objects.get(name='Aread Irector')
group = Group.objects.filter(type='wg')[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='rcross')
#print response.content
response = self.client.post(url,post_data,follow=True,REMOTE_USER=SEC_USER)
self.assertRedirects(response, url)
self.failUnless('added successfully' in response.content)
# ------- Test Description -------- #
def test_description(self):
group = IETFWG.objects.all()[0]
url = reverse('groups_description', kwargs={'id':group.group_acronym.acronym_id})
response = self.client.get(url,REMOTE_USER='rcross')
self.assertEquals(response.status_code, 200)
# must locate actual external group description file to pass this test
self.failUnless('P2P systems' in response.content)
# ------- Test Goals and Milestones -------- #
def test_gm_edit(self):
group = IETFWG.objects.all()[0]
url = reverse('groups_edit_gm', kwargs={'id':group.group_acronym.acronym_id})
target = reverse('groups_view', kwargs={'id':group.group_acronym.acronym_id})
post_data = {'goalmilestone-TOTAL_FORMS':'6',
'goalmilestone-INITIAL_FORMS':'1',
'goalmilestone-0-group_acronym':'1744',
'goalmilestone-0-id':'9839',
'goalmilestone-0-description':'Working Group Last Call for problem statement',
'goalmilestone-0-expected_due_date':'2009-04-30',
'goalmilestone-1-group_acronym':'1744',
'goalmilestone-1-id':'',
'goalmilestone-1-description':'This is a test goal',
'goalmilestone-1-expected_due_date':'2010-08-30',
'submit':'Save'}
response = self.client.post(url,post_data,follow=True,REMOTE_USER='rcross')
self.assertRedirects(response, target)
def test_gm_view(self):
group = IETFWG.objects.all()[0]
url = reverse('groups_view_gm', kwargs={'id':group.group_acronym.acronym_id})
response = self.client.get(url,REMOTE_USER='rcross')
self.assertEquals(response.status_code, 200)
self.failUnless('Working Group Last Call' in response.content)

28
ietf/secr/ipr/tests.py Normal file
View file

@ -0,0 +1,28 @@
from django.core.urlresolvers import reverse
from django.test import TestCase
from ietf.doc.models import Document
from ietf.utils.test_data import make_test_data
from pyquery import PyQuery
SEC_USER='secretary'
class MainTestCase(TestCase):
fixtures = ['names']
def test_main(self):
"Main Test"
draft = make_test_data()
url = reverse('ipr')
response = self.client.get(url,REMOTE_USER=SEC_USER)
self.assertEquals(response.status_code, 200)
"""
def test_view(self):
"View Test"
draft = make_test_data()
drafts = Document.objects.filter(type='draft')
url = reverse('drafts_view', kwargs={'id':drafts[0].name})
response = self.client.get(url,REMOTE_USER=SEC_USER)
self.assertEquals(response.status_code, 200)
"""

View file

@ -1,23 +1,26 @@
"""
This file demonstrates two different styles of tests (one doctest and one
unittest). These will both pass when you run "manage.py test".
Replace these with more appropriate tests for your application.
"""
from django.core.urlresolvers import reverse
from django.test import TestCase
class SimpleTest(TestCase):
def test_basic_addition(self):
"""
Tests that 1 + 1 always equals 2.
"""
self.failUnlessEqual(1 + 1, 2)
from ietf.meeting.models import Meeting
from ietf.utils.test_data import make_test_data
__test__ = {"doctest": """
Another way to test that 1 + 1 is equal to 2.
from pyquery import PyQuery
>>> 1 + 1 == 2
True
"""}
SEC_USER='secretary'
class MainTestCase(TestCase):
fixtures = ['names']
def test_main(self):
"Main Test"
url = reverse('meetings')
response = self.client.get(url,REMOTE_USER=SEC_USER)
self.assertEquals(response.status_code, 200)
def test_view(self):
"View Test"
draft = make_test_data()
meeting = Meeting.objects.all()[0]
url = reverse('meetings_view', kwargs={'meeting_id':meeting.number})
response = self.client.get(url,REMOTE_USER=SEC_USER)
self.assertEquals(response.status_code, 200)

View file

@ -1,23 +1,26 @@
"""
This file demonstrates two different styles of tests (one doctest and one
unittest). These will both pass when you run "manage.py test".
Replace these with more appropriate tests for your application.
"""
from django.core.urlresolvers import reverse
from django.test import TestCase
class SimpleTest(TestCase):
def test_basic_addition(self):
"""
Tests that 1 + 1 always equals 2.
"""
self.failUnlessEqual(1 + 1, 2)
from ietf.meeting.models import Meeting
from ietf.utils.test_data import make_test_data
__test__ = {"doctest": """
Another way to test that 1 + 1 is equal to 2.
from pyquery import PyQuery
>>> 1 + 1 == 2
True
"""}
SEC_USER='secretary'
class MainTestCase(TestCase):
fixtures = ['names']
def test_main(self):
"Main Test"
url = reverse('proceedings')
response = self.client.get(url,REMOTE_USER=SEC_USER)
self.assertEquals(response.status_code, 200)
def test_view(self):
"View Test"
draft = make_test_data()
meeting = Meeting.objects.all()[0]
url = reverse('meetings_view', kwargs={'meeting_id':meeting.number})
response = self.client.get(url,REMOTE_USER=SEC_USER)
self.assertEquals(response.status_code, 200)

View file

@ -1,23 +1,52 @@
"""
This file demonstrates two different styles of tests (one doctest and one
unittest). These will both pass when you run "manage.py test".
Replace these with more appropriate tests for your application.
"""
from django.core.urlresolvers import reverse
from django.test import TestCase
class SimpleTest(TestCase):
def test_basic_addition(self):
"""
Tests that 1 + 1 always equals 2.
"""
self.failUnlessEqual(1 + 1, 2)
from ietf.group.models import Group
from ietf.person.models import Person
from ietf.utils.test_data import make_test_data
__test__ = {"doctest": """
Another way to test that 1 + 1 is equal to 2.
from pyquery import PyQuery
>>> 1 + 1 == 2
True
"""}
SEC_USER='secretary'
def augment_data():
# need this for the RoleForm intialization
Group.objects.create(acronym='dummy',name='Dummy Group',type_id='sdo')
class MainTestCase(TestCase):
fixtures = ['names']
def test_main(self):
"Main Test"
augment_data()
url = reverse('roles')
response = self.client.get(url,REMOTE_USER=SEC_USER)
self.assertEquals(response.status_code, 200)
def test_roles_delete(self):
draft = make_test_data()
augment_data()
group = Group.objects.filter(type='wg')[0]
role = group.role_set.all()[0]
url = reverse('roles_delete_role', kwargs={'acronym':group.acronym,'id':role.id})
target = reverse('roles') + '?group=%s' % group.acronym
response = self.client.get(url,follow=True,REMOTE_USER=SEC_USER)
self.assertRedirects(response, target)
self.failUnless('deleted successfully' in response.content)
def test_roles_add(self):
draft = make_test_data()
augment_data()
person = Person.objects.get(name='Aread Irector')
group = Group.objects.filter(type='wg')[0]
url = reverse('roles')
target = reverse('roles') + '?group=%s' % group.acronym
post_data = {'group_acronym':group.acronym,
'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=SEC_USER)
self.assertRedirects(response, target)
self.failUnless('added successfully' in response.content)

View file

@ -1,23 +1,28 @@
"""
This file demonstrates two different styles of tests (one doctest and one
unittest). These will both pass when you run "manage.py test".
Replace these with more appropriate tests for your application.
"""
from django.core.urlresolvers import reverse
from django.test import TestCase
class SimpleTest(TestCase):
def test_basic_addition(self):
"""
Tests that 1 + 1 always equals 2.
"""
self.failUnlessEqual(1 + 1, 2)
from ietf.person.models import Person
from ietf.utils.test_data import make_test_data
__test__ = {"doctest": """
Another way to test that 1 + 1 is equal to 2.
from pyquery import PyQuery
SEC_USER='secretary'
class MainTestCase(TestCase):
fixtures = ['names']
def test_main(self):
"Main Test"
url = reverse('rolodex')
response = self.client.get(url,REMOTE_USER=SEC_USER)
self.assertEquals(response.status_code, 200)
def test_view(self):
"View Test"
draft = make_test_data()
person = Person.objects.all()[0]
url = reverse('rolodex_view', kwargs={'id':person.id})
response = self.client.get(url,REMOTE_USER=SEC_USER)
self.assertEquals(response.status_code, 200)
>>> 1 + 1 == 2
True
"""}

View file

@ -1,3 +1,3 @@
200 /secr/
200 /secr/sreq/
200 /secr/sreq/6lowpan/new/
200 /secret/
200 /secret/sreq/
200 /secret/sreq/6lowpan/new/

View file

@ -1,23 +1,35 @@
"""
This file demonstrates two different styles of tests (one doctest and one
unittest). These will both pass when you run "manage.py test".
Replace these with more appropriate tests for your application.
"""
from django.core.urlresolvers import reverse
from django.test import TestCase
class SimpleTest(TestCase):
def test_basic_addition(self):
"""
Tests that 1 + 1 always equals 2.
"""
self.failUnlessEqual(1 + 1, 2)
from ietf.iesg.models import TelechatDate, TelechatAgendaItem, WGAction
from ietf.person.models import Person
from ietf.utils.test_data import make_test_data
__test__ = {"doctest": """
Another way to test that 1 + 1 is equal to 2.
from pyquery import PyQuery
>>> 1 + 1 == 2
True
"""}
import datetime
SEC_USER='secretary'
def augment_data():
TelechatDate.objects.create(date=datetime.datetime.today())
class MainTestCase(TestCase):
fixtures = ['names']
def test_main(self):
"Main Test"
augment_data()
url = reverse('telechat')
response = self.client.get(url,REMOTE_USER=SEC_USER)
self.assertEquals(response.status_code, 200)
def test_doc(self):
"View Test"
augment_data()
d = TelechatDate.objects.all()[0]
date = d.date.strftime('%Y-%m-%d')
url = reverse('telechat_doc', kwargs={'date':date})
response = self.client.get(url,REMOTE_USER=SEC_USER)
self.assertEquals(response.status_code, 200)

View file

@ -169,6 +169,18 @@ INSTALLED_APPS = (
'ietf.wgchairs',
'ietf.wgcharter',
'ietf.community',
# secretariat apps
'ietf.secr.announcement',
'ietf.secr.areas',
'ietf.secr.drafts',
'ietf.secr.groups',
#'ietf.secr.ipr',
'ietf.secr.meetings',
#'ietf.secr.proceedings',
'ietf.secr.roles',
'ietf.secr.rolodex',
'ietf.secr.telechat',
'ietf.secr.sreq',
)
INTERNAL_IPS = (