From 26688aa2eca4219919274dfdda174aa5a7a8ef18 Mon Sep 17 00:00:00 2001 From: Henrik Levkowetz Date: Sat, 28 Sep 2013 05:35:17 +0000 Subject: [PATCH] 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 --- ietf/meeting/tests/agenda.py | 8 +- ietf/meeting/tests/api.py | 447 +---------------------------------- ietf/meeting/tests/auths.py | 4 +- ietf/meeting/tests/edit.py | 4 +- ietf/meeting/tests/urlgen.py | 14 +- ietf/meeting/tests/view.py | 6 +- 6 files changed, 28 insertions(+), 455 deletions(-) diff --git a/ietf/meeting/tests/agenda.py b/ietf/meeting/tests/agenda.py index 98cdfc938..065b7aff2 100644 --- a/ietf/meeting/tests/agenda.py +++ b/ietf/meeting/tests/agenda.py @@ -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): diff --git a/ietf/meeting/tests/api.py b/ietf/meeting/tests/api.py index e003893e5..33a2ed7f1 100644 --- a/ietf/meeting/tests/api.py +++ b/ietf/meeting/tests/api.py @@ -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, diff --git a/ietf/meeting/tests/auths.py b/ietf/meeting/tests/auths.py index 31757bc5d..3eb16b87d 100644 --- a/ietf/meeting/tests/auths.py +++ b/ietf/meeting/tests/auths.py @@ -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', diff --git a/ietf/meeting/tests/edit.py b/ietf/meeting/tests/edit.py index dada85011..feca603bf 100644 --- a/ietf/meeting/tests/edit.py +++ b/ietf/meeting/tests/edit.py @@ -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', diff --git a/ietf/meeting/tests/urlgen.py b/ietf/meeting/tests/urlgen.py index f661d5324..abc1e2b09 100644 --- a/ietf/meeting/tests/urlgen.py +++ b/ietf/meeting/tests/urlgen.py @@ -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") diff --git a/ietf/meeting/tests/view.py b/ietf/meeting/tests/view.py index 204d20250..3a0f125e1 100644 --- a/ietf/meeting/tests/view.py +++ b/ietf/meeting/tests/view.py @@ -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',