Changed back to standard TestCase to ensure confidence in tests. Removed duplicate tests. Adapted tests to new json_url() method signature. Corrected the /people/ urls to /person/.

- Legacy-Id: 6293
This commit is contained in:
Henrik Levkowetz 2013-09-28 05:35:17 +00:00
parent 72a19e2ab2
commit 26688aa2ec
6 changed files with 28 additions and 455 deletions

View file

@ -1,13 +1,13 @@
import sys
from django.test import Client
from ietf.meeting.tests.ttest import AgendaTransactionalTestCase
from django.test import TestCase
from ietf.name.models import SessionStatusName
from ietf.person.models import Person
from ietf.group.models import Group
from ietf.meeting.models import TimeSlot, Session, Meeting, ScheduledSession
from ietf.meeting.helpers import get_meeting, get_schedule
class AgendaInfoTestCase(AgendaTransactionalTestCase):
class AgendaInfoTestCase(TestCase):
fixtures = [ 'names.xml', # ietf/names/fixtures/names.xml for MeetingTypeName, and TimeSlotTypeName
'meeting83.json',
'constraint83.json',
@ -142,8 +142,8 @@ class AgendaInfoTestCase(AgendaTransactionalTestCase):
def test_serialize_constraint(self):
session1 = Session.objects.get(pk=2157)
sitefqdn = "http://datatracker.ietf.org"
json_dict = session1.constraints_dict(sitefqdn)
host_scheme = "http://datatracker.ietf.org"
json_dict = session1.constraints_dict(host_scheme)
self.assertEqual(len(json_dict), 25)
def test_avtcore_has_two_slots(self):

View file

@ -1,7 +1,7 @@
import base64
import sys, datetime
from django.test import Client
from ietf.meeting.tests.ttest import AgendaTransactionalTestCase
from django.test import TestCase
#from ietf.person.models import Person
from django.contrib.auth.models import User
@ -11,7 +11,9 @@ from auths import auth_joeblow, auth_wlo, auth_ietfchair, auth_ferrel
from django.utils import simplejson as json
from ietf.meeting.helpers import get_meeting
class ApiTestCase(AgendaTransactionalTestCase):
import debug
class ApiTestCase(TestCase):
fixtures = [ 'names.xml', # ietf/names/fixtures/names.xml for MeetingTypeName, and TimeSlotTypeName
'meeting83.json',
'constraint83.json',
@ -483,7 +485,7 @@ class ApiTestCase(AgendaTransactionalTestCase):
m83perm = json.loads(resp.content)
self.assertEqual(m83perm['secretariat'], True)
self.assertEqual(m83perm['owner_href'], "http://testserver/people/108757.json")
self.assertEqual(m83perm['owner_href'], "http://testserver/person/108757.json")
self.assertEqual(m83perm['read_only'], False)
self.assertEqual(m83perm['write_perm'], True)
@ -498,7 +500,7 @@ class ApiTestCase(AgendaTransactionalTestCase):
m83perm = json.loads(resp.content)
self.assertEqual(m83perm['secretariat'], False)
self.assertEqual(m83perm['owner_href'], "http://testserver/people/108757.json")
self.assertEqual(m83perm['owner_href'], "http://testserver/person/108757.json")
self.assertEqual(m83perm['read_only'], True)
self.assertEqual(m83perm['write_perm'], False)
@ -516,164 +518,11 @@ class ApiTestCase(AgendaTransactionalTestCase):
m83perm = json.loads(resp.content)
self.assertEqual(m83perm['secretariat'], False)
self.assertEqual(m83perm['owner_href'], "http://testserver/people/108757.json")
self.assertEqual(m83perm['owner_href'], "http://testserver/person/108757.json")
self.assertEqual(m83perm['read_only'], True)
self.assertEqual(m83perm['write_perm'], True)
self.assertEqual(resp.status_code, 200)
def test_createNewAgendaSecretariat(self):
mtg83 = get_meeting(83)
a83 = mtg83.agenda
extra_headers = auth_wlo
extra_headers['HTTP_ACCEPT']='text/json'
# try to create a new agenda
resp = self.client.post('/meeting/83/agendas', {
'name' : 'fakeagenda1',
}, **extra_headers)
self.assertEqual(resp.status_code, 302)
# see that in fact wlo can create a new timeslot
mtg83 = get_meeting(83)
n83 = mtg83.schedule_set.filter(name='fakeagenda1')
self.assertNotEqual(n83, None)
def test_updateAgendaSecretariat(self):
mtg83 = get_meeting(83)
a83 = mtg83.agenda
self.assertTrue(a83.visible)
extra_headers = auth_wlo
extra_headers['HTTP_ACCEPT']='application/json'
# try to create a new agenda
resp = self.client.put('/meeting/83/agendas/%s.json' % (a83.name),
data='visible=0',
content_type="application/x-www-form-urlencoded",
**extra_headers)
self.assertEqual(resp.status_code, 200)
# see that in fact wlo can create a new timeslot
mtg83 = get_meeting(83)
a83 = mtg83.agenda
self.assertFalse(a83.visible)
def test_deleteAgendaSecretariat(self):
mtg83 = get_meeting(83)
a83 = mtg83.agenda
self.assertNotEqual(a83, None)
# try to delete an agenda
resp = self.client.delete('/meeting/83/agendas/%s.json' % (a83.name), **auth_wlo)
self.assertEqual(resp.status_code, 200)
# see that in fact wlo can delete an existing room.
mtg83 = get_meeting(83)
a83c = mtg83.schedule_set.filter(pk = a83.pk).count()
self.assertEqual(a83c, 0)
self.assertEqual(mtg83.agenda, None)
#
# MEETING API
#
def test_getMeetingJson(self):
resp = self.client.get('/meeting/83.json')
m83json = json.loads(resp.content)
self.assertNotEqual(m83json, None)
def test_setMeetingAgendaNonSecretariat(self):
mtg83 = get_meeting(83)
self.assertNotEqual(mtg83.agenda, None)
# try to create a new agenda
resp = self.client.put('/meeting/83.json',
data="agenda=None",
content_type="application/x-www-form-urlencoded",
**auth_joeblow)
self.assertEqual(resp.status_code, 403)
self.assertNotEqual(mtg83.agenda, None)
def test_setMeetingAgendaNoneSecretariat(self):
mtg83 = get_meeting(83)
self.assertNotEqual(mtg83.agenda, None)
extra_headers = auth_wlo
extra_headers['HTTP_ACCEPT']='application/json'
# try to create a new agenda
resp = self.client.post('/meeting/83.json',
data="agenda=None",
content_type="application/x-www-form-urlencoded",
**extra_headers)
self.assertEqual(resp.status_code, 200)
# new to reload the object
mtg83 = get_meeting(83)
self.assertEqual(mtg83.agenda, None)
def test_setMeetingAgendaSecretariat(self):
mtg83 = get_meeting(83)
new_sched = mtg83.schedule_set.create(name="funny",
meeting=mtg83,
public=True,
owner=mtg83.agenda.owner)
self.assertNotEqual(mtg83.agenda, new_sched)
extra_headers = auth_wlo
extra_headers['HTTP_ACCEPT']='text/json'
# try to create a new agenda
resp = self.client.put('/meeting/83.json',
data="agenda=%s" % new_sched.name,
content_type="application/x-www-form-urlencoded",
**extra_headers)
self.assertEqual(resp.status_code, 200)
# new to reload the object
mtg83 = get_meeting(83)
self.assertEqual(mtg83.agenda, new_sched)
def test_setNonPublicMeetingAgendaSecretariat(self):
mtg83 = get_meeting(83)
new_sched = mtg83.schedule_set.create(name="funny",
meeting=mtg83,
public=False,
owner=mtg83.agenda.owner)
self.assertNotEqual(mtg83.agenda, new_sched)
extra_headers = auth_wlo
extra_headers['HTTP_ACCEPT']='text/json'
# try to create a new agenda
resp = self.client.put('/meeting/83.json',
data="agenda=%s" % new_sched.name,
content_type="application/x-www-form-urlencoded",
**extra_headers)
self.assertEqual(resp.status_code, 406)
# new to reload the object
mtg83 = get_meeting(83)
self.assertNotEqual(mtg83.agenda, new_sched)
def test_wlo_isSecretariatCanEditSched24(self):
extra_headers = auth_wlo
extra_headers['HTTP_ACCEPT']='text/json'
# check that wlo
resp = self.client.post('/dajaxice/ietf.meeting.readonly/', {
'argv': '{"meeting_num":"83","schedule_id":"24"}'
}, **extra_headers)
m83perm = json.loads(resp.content)
self.assertEqual(m83perm['secretariat'], True)
self.assertEqual(m83perm['owner_href'], "http://testserver/people/108757.json")
self.assertEqual(m83perm['read_only'], False)
self.assertEqual(m83perm['write_perm'], True)
def test_wlo_isNonUserCanNotSave(self):
extra_headers = auth_joeblow
extra_headers['HTTP_ACCEPT']='text/json'
@ -685,289 +534,11 @@ class ApiTestCase(AgendaTransactionalTestCase):
m83perm = json.loads(resp.content)
self.assertEqual(m83perm['secretariat'], False)
self.assertEqual(m83perm['owner_href'], "http://testserver/people/108757.json")
self.assertEqual(m83perm['owner_href'], "http://testserver/person/108757.json")
self.assertEqual(m83perm['read_only'], True)
self.assertEqual(m83perm['write_perm'], False)
def test_af_IsReadOnlySched24(self):
extra_headers = auth_ferrel
extra_headers['HTTP_ACCEPT']='text/json'
resp = self.client.post('/dajaxice/ietf.meeting.readonly/', {
'argv': '{"meeting_num":"83","schedule_id":"24"}'
}, **extra_headers)
m83perm = json.loads(resp.content)
self.assertEqual(m83perm['secretariat'], False)
self.assertEqual(m83perm['owner_href'], "http://testserver/people/108757.json")
self.assertEqual(m83perm['read_only'], True)
self.assertEqual(m83perm['write_perm'], True)
self.assertEqual(resp.status_code, 200)
def test_createNewAgendaSecretariat(self):
mtg83 = get_meeting(83)
a83 = mtg83.agenda
extra_headers = auth_wlo
extra_headers['HTTP_ACCEPT']='text/json'
# try to create a new agenda
resp = self.client.post('/meeting/83/agendas', {
'name' : 'fakeagenda1',
}, **extra_headers)
self.assertEqual(resp.status_code, 302)
# see that in fact wlo can create a new timeslot
mtg83 = get_meeting(83)
n83 = mtg83.schedule_set.filter(name='fakeagenda1')
self.assertNotEqual(n83, None)
def test_updateAgendaSecretariat(self):
mtg83 = get_meeting(83)
a83 = mtg83.agenda
self.assertTrue(a83.visible)
extra_headers = auth_wlo
extra_headers['HTTP_ACCEPT']='application/json'
# try to create a new agenda
resp = self.client.put('/meeting/83/agendas/%s.json' % (a83.name),
data='visible=0',
content_type="application/x-www-form-urlencoded",
**extra_headers)
self.assertEqual(resp.status_code, 200)
# see that in fact wlo can create a new timeslot
mtg83 = get_meeting(83)
a83 = mtg83.agenda
self.assertFalse(a83.visible)
def test_deleteAgendaSecretariat(self):
mtg83 = get_meeting(83)
a83 = mtg83.agenda
self.assertNotEqual(a83, None)
# try to delete an agenda
resp = self.client.delete('/meeting/83/agendas/%s.json' % (a83.name), **auth_wlo)
self.assertEqual(resp.status_code, 200)
# see that in fact wlo can delete an existing room.
mtg83 = get_meeting(83)
a83c = mtg83.schedule_set.filter(pk = a83.pk).count()
self.assertEqual(a83c, 0)
self.assertEqual(mtg83.agenda, None)
#
# MEETING API
#
def test_getMeetingJson(self):
resp = self.client.get('/meeting/83.json')
m83json = json.loads(resp.content)
self.assertNotEqual(m83json, None)
def test_setMeetingAgendaNonSecretariat(self):
mtg83 = get_meeting(83)
self.assertNotEqual(mtg83.agenda, None)
# try to create a new agenda
resp = self.client.put('/meeting/83.json',
data="agenda=None",
content_type="application/x-www-form-urlencoded",
**auth_joeblow)
self.assertEqual(resp.status_code, 403)
self.assertNotEqual(mtg83.agenda, None)
def test_setMeetingAgendaNoneSecretariat(self):
mtg83 = get_meeting(83)
self.assertNotEqual(mtg83.agenda, None)
extra_headers = auth_wlo
extra_headers['HTTP_ACCEPT']='application/json'
# try to create a new agenda
resp = self.client.post('/meeting/83.json',
data="agenda=None",
content_type="application/x-www-form-urlencoded",
**extra_headers)
self.assertEqual(resp.status_code, 200)
# new to reload the object
mtg83 = get_meeting(83)
self.assertEqual(mtg83.agenda, None)
def test_setMeetingAgendaSecretariat(self):
mtg83 = get_meeting(83)
new_sched = mtg83.schedule_set.create(name="funny",
meeting=mtg83,
public=True,
owner=mtg83.agenda.owner)
self.assertNotEqual(mtg83.agenda, new_sched)
extra_headers = auth_wlo
extra_headers['HTTP_ACCEPT']='text/json'
# try to create a new agenda
resp = self.client.put('/meeting/83.json',
data="agenda=%s" % new_sched.name,
content_type="application/x-www-form-urlencoded",
**extra_headers)
self.assertEqual(resp.status_code, 200)
# new to reload the object
mtg83 = get_meeting(83)
self.assertEqual(mtg83.agenda, new_sched)
def test_setNonPublicMeetingAgendaSecretariat(self):
mtg83 = get_meeting(83)
new_sched = mtg83.schedule_set.create(name="funny",
meeting=mtg83,
public=False,
owner=mtg83.agenda.owner)
self.assertNotEqual(mtg83.agenda, new_sched)
extra_headers = auth_wlo
extra_headers['HTTP_ACCEPT']='text/json'
# try to create a new agenda
resp = self.client.put('/meeting/83.json',
data="agenda=%s" % new_sched.name,
content_type="application/x-www-form-urlencoded",
**extra_headers)
self.assertEqual(resp.status_code, 406)
# new to reload the object
mtg83 = get_meeting(83)
self.assertNotEqual(mtg83.agenda, new_sched)
def test_wlo_isSecretariatCanEditSched24(self):
extra_headers = auth_wlo
extra_headers['HTTP_ACCEPT']='text/json'
# check that wlo
resp = self.client.post('/dajaxice/ietf.meeting.readonly/', {
'argv': '{"meeting_num":"83","schedule_id":"24"}'
}, **extra_headers)
m83perm = json.loads(resp.content)
self.assertEqual(m83perm['secretariat'], True)
self.assertEqual(m83perm['owner_href'], "http://testserver/people/108757.json")
self.assertEqual(m83perm['read_only'], False)
self.assertEqual(m83perm['write_perm'], True)
def test_wlo_isNonUserCanNotSave(self):
extra_headers = auth_joeblow
extra_headers['HTTP_ACCEPT']='text/json'
# check that wlo
resp = self.client.post('/dajaxice/ietf.meeting.readonly/', {
'argv': '{"meeting_num":"83","schedule_id":"24"}'
}, **extra_headers)
m83perm = json.loads(resp.content)
self.assertEqual(m83perm['secretariat'], False)
self.assertEqual(m83perm['owner_href'], "http://testserver/people/108757.json")
self.assertEqual(m83perm['read_only'], True)
self.assertEqual(m83perm['write_perm'], False)
def test_createNewAgendaSecretariat(self):
mtg83 = get_meeting(83)
a83 = mtg83.agenda
extra_headers = auth_wlo
extra_headers['HTTP_ACCEPT']='text/json'
# try to create a new agenda
resp = self.client.post('/meeting/83/agendas', {
'name' : 'fakeagenda1',
}, **extra_headers)
self.assertEqual(resp.status_code, 302)
# see that in fact wlo can create a new timeslot
mtg83 = get_meeting(83)
n83 = mtg83.schedule_set.filter(name='fakeagenda1')
self.assertNotEqual(n83, None)
def test_updateAgendaSecretariat(self):
mtg83 = get_meeting(83)
a83 = mtg83.agenda
self.assertTrue(a83.visible)
extra_headers = auth_wlo
extra_headers['HTTP_ACCEPT']='application/json'
# try to create a new agenda
resp = self.client.put('/meeting/83/agendas/%s.json' % (a83.name),
data='visible=0',
content_type="application/x-www-form-urlencoded",
**extra_headers)
self.assertEqual(resp.status_code, 200)
# see that in fact wlo can create a new timeslot
mtg83 = get_meeting(83)
a83 = mtg83.agenda
self.assertFalse(a83.visible)
def test_deleteAgendaSecretariat(self):
mtg83 = get_meeting(83)
a83 = mtg83.agenda
self.assertNotEqual(a83, None)
# try to delete an agenda
resp = self.client.delete('/meeting/83/agendas/%s.json' % (a83.name), **auth_wlo)
self.assertEqual(resp.status_code, 200)
# see that in fact wlo can delete an existing room.
mtg83 = get_meeting(83)
a83c = mtg83.schedule_set.filter(pk = a83.pk).count()
self.assertEqual(a83c, 0)
self.assertEqual(mtg83.agenda, None)
#
# MEETING API
#
def test_getMeetingJson(self):
resp = self.client.get('/meeting/83.json')
m83json = json.loads(resp.content)
self.assertNotEqual(m83json, None)
def test_setMeetingAgendaNonSecretariat(self):
mtg83 = get_meeting(83)
self.assertNotEqual(mtg83.agenda, None)
# try to create a new agenda
resp = self.client.put('/meeting/83.json',
data="agenda=None",
content_type="application/x-www-form-urlencoded",
**auth_joeblow)
self.assertEqual(resp.status_code, 403)
self.assertNotEqual(mtg83.agenda, None)
def test_setMeetingAgendaNoneSecretariat(self):
mtg83 = get_meeting(83)
self.assertNotEqual(mtg83.agenda, None)
extra_headers = auth_wlo
extra_headers['HTTP_ACCEPT']='application/json'
# try to create a new agenda
resp = self.client.post('/meeting/83.json',
data="agenda=None",
content_type="application/x-www-form-urlencoded",
**extra_headers)
self.assertEqual(resp.status_code, 200)
# new to reload the object
mtg83 = get_meeting(83)
self.assertEqual(mtg83.agenda, None)
def test_setMeetingAgendaSecretariat(self):
def test_setMeetingAgendaSecretariat2(self):
mtg83 = get_meeting(83)
new_sched = mtg83.schedule_set.create(name="funny",
meeting=mtg83,

View file

@ -1,6 +1,6 @@
import sys
from django.test import Client
from ietf.meeting.tests.ttest import AgendaTransactionalTestCase
from django.test import TestCase
#from ietf.person.models import Person
from django.contrib.auth.models import User
from ietf.ietfauth.decorators import has_role
@ -18,7 +18,7 @@ auth_joeblow = {'REMOTE_USER':'joeblow'}
auth_ferrel = {'REMOTE_USER':'stephen.farrell@cs.tcd.ie'}
class AuthDataTestCase(AgendaTransactionalTestCase):
class AuthDataTestCase(TestCase):
fixtures = [ 'names.xml', # ietf/names/fixtures/names.xml for MeetingTypeName, and TimeSlotTypeName
'meeting83.json',
'constraint83.json',

View file

@ -2,7 +2,7 @@ import re
import sys
from settings import BASE_DIR
from django.test import Client
from ietf.meeting.tests.ttest import AgendaTransactionalTestCase
from django.test import TestCase
#from ietf.person.models import Person
from django.contrib.auth.models import User
from django.test.client import Client
@ -11,7 +11,7 @@ from auths import auth_joeblow, auth_wlo, auth_ietfchair, auth_ferrel
capture_output = False
class EditTestCase(AgendaTransactionalTestCase):
class EditTestCase(TestCase):
fixtures = [ 'names.xml', # ietf/names/fixtures/names.xml for MeetingTypeName, and TimeSlotTypeName
'meeting83.json',
'constraint83.json',

View file

@ -1,7 +1,9 @@
import base64
import sys
from urlparse import urljoin
from django.test import Client
from ietf.meeting.tests.ttest import AgendaTransactionalTestCase
from django.test import TestCase
from django.contrib.auth.models import User
from ietf.person.models import Person
@ -10,7 +12,7 @@ from ietf.meeting.models import Constraint
from ietf.group.models import Group
class UrlGenTestCase(AgendaTransactionalTestCase):
class UrlGenTestCase(TestCase):
fixtures = [ 'names.xml', # ietf/names/fixtures/names.xml for MeetingTypeName, and TimeSlotTypeName
'meeting83.json',
'constraint83.json',
@ -21,20 +23,20 @@ class UrlGenTestCase(AgendaTransactionalTestCase):
def test_meetingGeneratesUrl(self):
mtg83 = Meeting.objects.get(pk=83)
hostport = "http://datatracker.ietf.org"
self.assertEqual(mtg83.url(hostport), "http://datatracker.ietf.org/meeting/83.json")
self.assertEqual(urljoin(hostport, mtg83.json_url()), "http://datatracker.ietf.org/meeting/83.json")
def test_constraintGeneratesUrl(self):
const1 = Constraint.objects.get(pk=21037)
hostport = "http://datatracker.ietf.org"
self.assertEqual(const1.url(hostport), "http://datatracker.ietf.org/meeting/83/constraint/21037.json")
self.assertEqual(urljoin(hostport, const1.json_url()), "http://datatracker.ietf.org/meeting/83/constraint/21037.json")
def test_groupGeneratesUrl(self):
group1 = Group.objects.get(pk=1730)
hostport = "http://datatracker.ietf.org"
self.assertEqual(group1.url(hostport), "http://datatracker.ietf.org/group/roll.json")
self.assertEqual(urljoin(hostport, group1.json_url()), "http://datatracker.ietf.org/group/roll.json")
def test_sessionGeneratesUrl(self):
sess1 = Session.objects.get(pk=22087)
hostport = "http://datatracker.ietf.org"
self.assertEqual(sess1.url(hostport), "http://datatracker.ietf.org/meeting/83/session/22087.json")
self.assertEqual(urljoin(hostport, sess1.json_url()), "http://datatracker.ietf.org/meeting/83/session/22087.json")

View file

@ -1,7 +1,7 @@
import re
import sys
from django.test.client import Client
from ietf.meeting.tests.ttest import AgendaTransactionalTestCase
from django.test import TestCase
#from ietf.person.models import Person
from django.contrib.auth.models import User
from settings import BASE_DIR
@ -11,9 +11,9 @@ from ietf.meeting.helpers import get_meeting
from django.core.urlresolvers import reverse
from ietf.meeting.views import edit_agenda
capture_output = False
capture_output = True
class ViewTestCase(AgendaTransactionalTestCase):
class ViewTestCase(TestCase):
fixtures = [ 'names.xml', # ietf/names/fixtures/names.xml for MeetingTypeName, and TimeSlotTypeName
'meeting83.json',
'constraint83.json',