diff --git a/zkpylons/templates/leftcol/toolbox.mako b/zkpylons/templates/leftcol/toolbox.mako
index 78b6e8053..3d84d0bc3 100644
--- a/zkpylons/templates/leftcol/toolbox.mako
+++ b/zkpylons/templates/leftcol/toolbox.mako
@@ -18,7 +18,7 @@
% endif
% if h.auth.authorized(h.auth.has_reviewer_role):
-
+
+
-
+
% endif
% if h.auth.authorized(h.auth.has_funding_reviewer_role):
-
+
+
% endif
% if (c.db_content and not c.db_content.is_news()) or len(parent.short_title()) > 0:
-
-
+
+
% endif
% if h.signed_in_person():
-
${h.signed_in_person().email_address}
+
${h.signed_in_person().email_address}
% endif
diff --git a/zkpylons/templates/registration/form.mako b/zkpylons/templates/registration/form.mako
index 7acf716b8..9cc8b579a 100644
--- a/zkpylons/templates/registration/form.mako
+++ b/zkpylons/templates/registration/form.mako
@@ -50,20 +50,20 @@ import array
%if c.config.get('personal_info', category='rego')['home_address'] == 'yes':
-
* Address:
+
* Address:
${ h.text('person.address1', size=40) }
${ h.text('person.address2', size=40) }
-
* City/Suburb:
+
* City/Suburb:
${ h.text('person.city', size=40) }
-
State/Province:
+
State/Province:
${ h.text('person.state', size=40) }
-
* Postcode/ZIP:
+
* Postcode/ZIP:
${ h.text('person.postcode', size=40) }
%else:
${ h.hidden('person.address1') }
@@ -73,9 +73,9 @@ ${ h.hidden('person.state') }
${ h.hidden('person.postcode') }
%endif
-
* Country:
+
* Country:
-
+
% for country in h.countries():
${ country }
% endfor
@@ -87,14 +87,14 @@ ${ h.hidden('person.postcode') }
%>
%if c.config.get('personal_info', category='rego')['phone'] == 'yes':
- Phone number (International Format):
+ Phone number (International Format):
${ h.text('person.phone') }
% if is_speaker:
*
% endif
- Mobile/Cell number (International Format):
+ Mobile/Cell number (International Format):
${ h.text('person.mobile') }
%else:
@@ -102,7 +102,7 @@ ${ h.hidden('person.phone') }
${ h.hidden('person.mobile') }
%endif
- Company:
+ Company:
${ h.text('person.company', size=60) }
@@ -110,7 +110,7 @@ ${ h.hidden('person.mobile') }
Voucher
- Voucher code:
+ Voucher code:
${ h.text('registration.voucher_code', size=15) }
If you have been provided with a voucher code, please enter it here.
@@ -298,13 +298,15 @@ accommdisplay();
${ product.description } ${ soldout | n}(${ h.integer_to_currency(product.cost) })
% endfor
+
% for product in products:
% if category.display == 'qty':
- ${ h.text('products.product_' + product.clean_description(True) + '_qty', size=2) }
+ ${ h.text('products.product_' + product.clean_description(True) + '_qty', size=2) }
% elif category.display == 'checkbox':
- ${ h.checkbox('products.product_' + product.clean_description(True) + '_checkbox') }
+ ${ h.checkbox('products.product_' + product.clean_description(True) + '_checkbox') }
% endif
% endfor
+
% elif category.display == 'radio':
@@ -334,7 +336,6 @@ accommdisplay();
% endif
% endfor
-
% elif category.display == 'select':
% if category.name == 'Accommodation' and (len(category.products) == 0 or (len(category.products) == 1 and category.products[0].cost == 0)):
@@ -386,13 +387,13 @@ accommdisplay();
% endif
% elif category.name == "Partners' Programme":
- # Your partner's name:
+ # Your partner's name:
${ h.text('products.partner_name', size=50) }
#If your partner will be participating in the programme, then this field is required so that our Partners Programme manager can contact them.
- # Your partner's email address:
+ # Your partner's email address:
${ h.text('products.partner_email', size=50) }
#If your partner will be participating in the programme, then this field is required so that our Partners Programme manager can contact them.
- # enter number in international format. If you don't know the number, type "unknown".:
+ # enter number in international format. If you don't know the number, type "unknown".:
${ h.text('products.partner_mobile', size=50) }
A Partners Programme shirt is included with every adult partner ticket. Please indicate the appropriate number and sizes in the T-Shirt Section (above).
% endif
@@ -406,21 +407,21 @@ accommdisplay();
Further Information
- * Are you over 18?
+ * Are you over 18?
${ h.radio('registration.over18', 1, label='Yes') }
${ h.radio('registration.over18', 0, label='No') }
Being under 18 will not stop you from registering. We need to know whether you are over 18 to allow us to cater for you at venues that serve alcohol.
- Dietary requirements:
+ Dietary requirements:
${ h.text('registration.diet', size=60) }
- Other special requirements:
+ Other special requirements:
${ h.text('registration.special', size=60) }
Please enter any requirements if necessary; access requirements, etc.
% if c.config.get('ask_past_confs', category='rego'):
- Have you attended ${ c.config.get('event_generic_name') } before?
+ Have you attended ${ c.config.get('event_generic_name') } before?
@@ -432,7 +433,6 @@ accommdisplay();
-
% endif
% if c.config.get('lca_optional_stuff', category='rego') == 'yes':
@@ -459,12 +459,12 @@ accommdisplay();
% if not c.registration or c.registration.shell in c.config.get('shells', category='rego') or c.registration.shell == '':
-
+
% else:
-
+
% endif
-
${ h.text('registration.shelltext', size=12) }
-
+ ${ h.text('registration.shelltext', size=12) }
+
@@ -479,12 +479,12 @@ accommdisplay();
% if not c.registration or c.registration.editor in c.config.get('editors', category='rego') or c.registration.editor == '':
-
+
% else:
-
+
% endif
-
${ h.text('registration.editortext', size=12) }
-
+ ${ h.text('registration.editortext', size=12) }
+
@@ -499,12 +499,12 @@ accommdisplay();
% if not c.registration or c.registration.distro in c.config.get('distros', category='rego') or c.registration.distro == '':
-
+
% else:
-
+
% endif
-
${ h.text('registration.distrotext', size=12) }
-
+ ${ h.text('registration.distrotext', size=12) }
+
@@ -518,32 +518,32 @@ accommdisplay();
% if not c.registration or c.registration.vcs in c.config.get('vcses', category='rego') or c.registration.vcs == '':
-
+
% else:
-
+
% endif
-
${ h.text('registration.vcstext', size=12) }
-
+ ${ h.text('registration.vcstext', size=12) }
+
-
Superhero name:
+
Superhero name:
${ h.text('registration.nick', size=30) }
Your IRC nick or other handle you go by.
% if c.config.get('pgp_collection', category='rego') != 'no':
-
GnuPG/PGP Keyid:
+
GnuPG/PGP Keyid:
${ h.text('registration.keyid', size=10) }
If you have a GnuPG or PGP key then please enter its short key id here and we will print it on your badge.
% endif
-
Planet Feed:
+
Planet Feed:
${ h.text('registration.planetfeed', size=50) }
If you have a blog and would like it included in the ${ c.config.get('event_name') } planet, please specify an ${ c.config.get('event_name') } specific feed to be included. (This is the URL of the RSS feed.)
-
Description:
-
${ c.silly_description }
+
Description:
+
${ c.silly_description }
${ h.hidden('registration.silly_description') }
${ h.hidden('registration.silly_description_checksum') }
This is a randomly chosen description for your name badge
@@ -562,7 +562,6 @@ accommdisplay();
${ h.checkbox('registration.signup.chat') } the ${ c.config.get('event_name') } attendees list
-
% if is_speaker:
From ab0b5d7af5fb28a59ddd45420e07f91a56f20b89 Mon Sep 17 00:00:00 2001
From: David Tulloh
Date: Sun, 16 Aug 2015 23:57:39 +1000
Subject: [PATCH 10/23] Deleted unused or invalid tests
Openday isn't a ZK concept any more
Scaffold test - not used
Not using the unittest framework
Remove test_template - doesn't test anything
test_proposal_type is covered by test_proposal
Only validator that was tested is gone
zkpylons.lib.crud is gone
---
zk/tests/tests.py | 32 ----------
zkpylons/controllers/admin_deactivated.txt | 7 ---
zkpylons/tests/__init__.py | 50 ---------------
zkpylons/tests/functional/test_openday.py | 44 -------------
zkpylons/tests/functional/test_person.py | 28 ---------
.../tests/functional/test_proposal_type.py | 46 --------------
.../tests/functional/test_registration.py | 1 -
zkpylons/tests/functional/test_template.py | 61 -------------------
zkpylons/tests/lib/__init__.py | 0
zkpylons/tests/lib/test_crud.py | 12 ----
zkpylons/tests/lib/test_validators.py | 13 ----
zkpylons/tests/test_models.py | 0
.../{functional => unit}/test_routing.py | 8 ++-
13 files changed, 6 insertions(+), 296 deletions(-)
delete mode 100644 zk/tests/tests.py
delete mode 100644 zkpylons/tests/__init__.py
delete mode 100644 zkpylons/tests/functional/test_openday.py
delete mode 100644 zkpylons/tests/functional/test_person.py
delete mode 100644 zkpylons/tests/functional/test_proposal_type.py
delete mode 100644 zkpylons/tests/functional/test_template.py
delete mode 100644 zkpylons/tests/lib/__init__.py
delete mode 100644 zkpylons/tests/lib/test_crud.py
delete mode 100644 zkpylons/tests/lib/test_validators.py
delete mode 100644 zkpylons/tests/test_models.py
rename zkpylons/tests/{functional => unit}/test_routing.py (87%)
diff --git a/zk/tests/tests.py b/zk/tests/tests.py
deleted file mode 100644
index 6950b1833..000000000
--- a/zk/tests/tests.py
+++ /dev/null
@@ -1,32 +0,0 @@
-import unittest
-import transaction
-
-from pyramid import testing
-
-from .models import DBSession
-
-class TestMyView(unittest.TestCase):
- def setUp(self):
- self.config = testing.setUp()
- from sqlalchemy import create_engine
- engine = create_engine('sqlite://')
- from .models import (
- Base,
- MyModel,
- )
- DBSession.configure(bind=engine)
- Base.metadata.create_all(engine)
- with transaction.manager:
- model = MyModel(name='one', value=55)
- DBSession.add(model)
-
- def tearDown(self):
- DBSession.remove()
- testing.tearDown()
-
- def test_it(self):
- from .views import my_view
- request = testing.DummyRequest()
- info = my_view(request)
- self.assertEqual(info['one'].name, 'one')
- self.assertEqual(info['project'], 'MyPyramid')
diff --git a/zkpylons/controllers/admin_deactivated.txt b/zkpylons/controllers/admin_deactivated.txt
index f354a3f37..13e60b831 100644
--- a/zkpylons/controllers/admin_deactivated.txt
+++ b/zkpylons/controllers/admin_deactivated.txt
@@ -1430,13 +1430,6 @@
c.columns = 'id', 'title', 'emails', 'firstnames', 'consents'
return render('admin/table.mako')
- def total_opendaydrag(self):
- """ Total of the open day drag entries. """
- res = 0
- for r in paid_regos(self):
- res += (r.opendaydrag or 0)
- c.data = [[res]]
- return render('admin/table.mako')
def olpc_lookup(self):
""" look up people who got the OLPC laptop... """
names = """
diff --git a/zkpylons/tests/__init__.py b/zkpylons/tests/__init__.py
deleted file mode 100644
index de57db458..000000000
--- a/zkpylons/tests/__init__.py
+++ /dev/null
@@ -1,50 +0,0 @@
-"""Pylons application test package
-
-This package assumes the Pylons environment is already loaded, such as
-when this script is imported from the `nosetests --with-pylons=test.ini`
-command.
-
-This module initializes the application via ``websetup`` (`paster
- setup-app`) and provides the base testing objects.
-"""
-from unittest import TestCase
-
-from paste.deploy import loadapp
-from paste.script.appinstall import SetupCommand
-from pylons import config, url
-from routes.util import URLGenerator
-from webtest import TestApp
-
-import pylons.test
-
-__all__ = ['environ', 'url', 'TestController']
-
-# Invoke websetup with the current config file
-#SetupCommand('setup-app').run([config['__file__']])
-SetupCommand('setup-app').run([pylons.test.pylonsapp.config['__file__']])
-
-environ = {}
-
-class TestController(TestCase):
-
- def __init__(self, *args, **kwargs):
- if pylons.test.pylonsapp:
- wsgiapp = pylons.test.pylonsapp
- else:
- wsgiapp = loadapp('config:%s' % config['__file__'])
- self.app = TestApp(wsgiapp)
- url._push_object(URLGenerator(config['routes.map'], environ))
- TestCase.__init__(self, *args, **kwargs)
-
-
-# FIXME after upgrade
-#def setup():
-# try:
-# os.unlink('test.db')
-# except OSError:
-# pass
-#
-# from zkpylons.model import create_all
-# create_all({'dburi': 'sqlite:///test.db',
-# 'echo_queries': 'true'})
-
diff --git a/zkpylons/tests/functional/test_openday.py b/zkpylons/tests/functional/test_openday.py
deleted file mode 100644
index d30b82a77..000000000
--- a/zkpylons/tests/functional/test_openday.py
+++ /dev/null
@@ -1,44 +0,0 @@
-from zkpylons.tests.functional import *
-
-class TestOpendayController(CRUDControllerTest):
- model = model.openday.Openday
- url = '/openday'
- param_name = 'openday'
- samples = [dict(openday=dict(
- firstname='Happy',
- lastname='Teacher',
- heardfromtext='School',
- opendaydrag=1,
- email_address='teacher@example.org',
- heardfrom='-',
- ),
- )
- ]
- crud = ['create']
-
- def test_existing_openday(self):
- p = model.Openday(email_address='teacher@example.org',
- firstname='Happy',
- lastname='Teacher',
- )
- self.dbsession.save(p)
- self.dbsession.flush()
-
- pid = p.id
-
- resp = self.app.get('/openday/new')
- f = resp.form
- f['openday.heardfromtext'] = 'Moo'
- f['openday.opendaydrag'] = '5'
- f['openday.email_address'] = 'teacher@example.org'
- f['openday.firstname'] = 'Happy'
- f['openday.lastname'] = 'Teacher'
-
- resp = f.submit()
-
- resp.mustcontain('You have already registered!')
-
- # clean up
- self.dbsession.delete(self.dbsession.query(model.Openday).get(pid))
- self.dbsession.flush()
-
diff --git a/zkpylons/tests/functional/test_person.py b/zkpylons/tests/functional/test_person.py
deleted file mode 100644
index 7bf02d2f9..000000000
--- a/zkpylons/tests/functional/test_person.py
+++ /dev/null
@@ -1,28 +0,0 @@
-# import md5
-
-# from zkpylons.tests.functional import *
-
-# class TestPerson(SignedInCRUDControllerTest):
-# model = model.Person
-# name = 'person'
-# url = '/person'
-# samples = [dict(handle='testguy',
-# email_address='testguy@example.org',
-# password='p4ssw0rd',
-# password_confirm='p4ssw0rd',
-# fullname='Testy Guy',
-# phone='37373737',
-# mobile='42424242'
-# ),
-# dict(handle='testgirl',
-# email_address='testgirl@example.com',
-# password='test',
-# password_confirm='test',
-# fullname='Ytset Girl',
-# phone='12121212',
-# mobile='23232323'
-# ),
-# ]
-# no_test = ['password_confirm']
-# mangles = dict(password=lambda p: md5.new(p).hexdigest())
-# crud = ['edit']
diff --git a/zkpylons/tests/functional/test_proposal_type.py b/zkpylons/tests/functional/test_proposal_type.py
deleted file mode 100644
index 398d6a3ed..000000000
--- a/zkpylons/tests/functional/test_proposal_type.py
+++ /dev/null
@@ -1,46 +0,0 @@
-# from zkpylons.model import ProposalType, Role
-# from zkpylons.tests.functional import *
-
-# class TestProposalType(CRUDControllerTest):
-# model = ProposalType
-# name = 'proposal_type'
-# url = '/proposal_type'
-# samples = [dict(name='Paper'),
-# dict(name='BOF')]
-
-# def setUp(self):
-# super(CRUDControllerTest, self).setUp()
-# self.log_in()
-# self.r = Role('site-admin')
-# self.p.roles.append(self.r)
-# self.r.save()
-# self.r.flush()
-
-# def tearDown(self):
-# self.r.delete()
-# self.r.flush()
-# self.log_out()
-# super(CRUDControllerTest, self).tearDown()
-
-# def test_proposal_view_lockdown(self):
-# # we got one person
-# #self.log_in()
-# # create roles
-# #r = Role('site-admin')
-# #r.save()
-# #r.flush()
-# # create a proposal_type
-# st = ProposalType('foo')
-# st.save()
-# st.flush()
-# # try to view the proposal, we're not a site-admin
-# resp = self.app.get(url_for(controller='proposal_type',
-# action='view',
-# id=st.id),
-# status=403)
-# # clean up
-# st.delete()
-# st.flush()
-# #r.delete()
-# #r.flush()
-# #self.log_out()
diff --git a/zkpylons/tests/functional/test_registration.py b/zkpylons/tests/functional/test_registration.py
index 7e40913f9..c51371200 100644
--- a/zkpylons/tests/functional/test_registration.py
+++ b/zkpylons/tests/functional/test_registration.py
@@ -23,7 +23,6 @@ class TestRegistrationController(CRUDControllerTest):
voucher_code='voucher_code1',
diet='diet1',
special='special1',
- opendaydrag=1,
partner_email='partner@example.org',
kids_0_3=1,
kids_4_6=1,
diff --git a/zkpylons/tests/functional/test_template.py b/zkpylons/tests/functional/test_template.py
deleted file mode 100644
index ab2fed220..000000000
--- a/zkpylons/tests/functional/test_template.py
+++ /dev/null
@@ -1,61 +0,0 @@
-from zkpylons.tests.functional import *
-
-class TestTemplateController(ControllerTest):
- """Tests the Template controller and wiki integration."""
-
- # Implementation
-
- def setUp(self):
- super(TestTemplateController, self).setUp()
-
- self.logged_in = False
-
- # create a user
- self.p = model.core.Person(email_address='testguy@example.org',
- password='p4ssw0rd')
- self.p.activated = True
- self.p.handle = 'Foomongler'
-
- self.dbsession.save(self.p)
- self.dbsession.flush()
- self.pid = self.p.id
-
- def tearDown(self):
- # clean up
- self._login()
-
- resp = self.app.get('/NobodyExpectsTheSpanishInquisition', status=200)
- if resp.body.find('bright side of life') > -1:
- f = resp.forms[0]
- f['action'] = 'DeletePage'
- resp = f.submit()
- resp.mustcontain('Really delete this page?')
- f = resp.forms[0]
- f.submit('delete')
-
- self.dbsession.delete(self.dbsession.query(model.Person).get(self.p.id))
- self.dbsession.flush()
-
- super(TestTemplateController, self).tearDown()
-
- def assertNotLoggedIn(self):
- # confirm we aren't logged in
- resp = self.app.get(url_for(controller='/NobodyExpectsTheSpanishInquisition'), status=200)
- self.assertEquals(-1, resp.body.find('Foomongler'))
-
- def _login(self):
- if not self.logged_in:
- # log in
- resp = self.app.get(url_for(controller='person',
- action='signin', id=None))
- f = resp.form
- f['email_address'] = 'testguy@example.org'
- f['password'] = 'p4ssw0rd'
- resp = f.submit()
- self.logged_in = True
-
- def test_clean_html(self):
- resp = self.app.get('/NobodyExpectsTheSpanishInquisition', status=200)
- self.assertEquals(1, resp.body.count('
Date: Mon, 17 Aug 2015 14:52:21 +1000
Subject: [PATCH 11/23] Rewrite tests to allow them to work again
Old tests used a complex framework, which has been entirely discarded.
A new hopefully less complex framework is used instead.
Tests also transition from nose, I think, to pytest runner.
Some tests also require significant work to reflect the reality of the
system. Many are unchanged since 2006.
Some tests fail, these issues raised in the github tracker.
The issue number is marked in the test, the tests have been flagged as
an expected fail for this merge. This flag should be removed when the
issue is addressed.
---
setup.cfg | 2 +-
test.ini | 39 ++
zk/model/attachment.py | 7 +-
zk/model/fulfilment.py | 11 +-
zk/model/proposal.py | 4 +
zk/tests/model/fixtures.py | 144 ++++-
zkpylons/tests/functional/__init__.py | 399 +-----------
zkpylons/tests/functional/conftest.py | 104 +++
zkpylons/tests/functional/fixtures.py | 1 +
zkpylons/tests/functional/test_account.py | 578 ++++++++---------
zkpylons/tests/functional/test_cfp.py | 207 ------
zkpylons/tests/functional/test_home.py | 79 ++-
zkpylons/tests/functional/test_invoice.py | 150 ++---
zkpylons/tests/functional/test_payment.py | 103 ++-
zkpylons/tests/functional/test_proposal.py | 593 ++++++------------
.../tests/functional/test_registration.py | 309 +++------
zkpylons/tests/functional/test_review.py | 303 +++++----
zkpylons/tests/functional/test_role.py | 91 ++-
zkpylons/tests/functional/utils.py | 18 +
19 files changed, 1199 insertions(+), 1943 deletions(-)
create mode 100644 test.ini
create mode 100644 zkpylons/tests/functional/conftest.py
create mode 120000 zkpylons/tests/functional/fixtures.py
delete mode 100644 zkpylons/tests/functional/test_cfp.py
create mode 100644 zkpylons/tests/functional/utils.py
diff --git a/setup.cfg b/setup.cfg
index 41e7b7ec4..de9acd258 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -15,4 +15,4 @@ paste.app_factory =
main = zk:main
[pytest]
-norecursedirs = .git env TestExample wsgi zk-2.0 zk.egg-info *.egg data alembic docs pbr* zkpylons .tox
+norecursedirs = .git env TestExample wsgi zk-2.0 zk.egg-info *.egg data alembic docs pbr* .tox
diff --git a/test.ini b/test.ini
new file mode 100644
index 000000000..b49e23faa
--- /dev/null
+++ b/test.ini
@@ -0,0 +1,39 @@
+[server:main]
+use = egg:waitress#main
+host = 127.0.0.1
+port = 5000
+
+[app:main]
+use = egg:zookeepr
+sqlalchemy.url = postgresql://postgres@localhost/zktest
+cache_dir = %(here)s/data
+
+authkit.setup.method = forward, cookie
+authkit.cookie.secret = CHANGE_ME
+authkit.forward.signinpath = /person/signin
+authkit.cookie.signoutpath = /person/signout
+authkit.cookie.badcookie.page = false
+
+smtp_server = stubbed
+
+[loggers]
+keys = root, zk, sqlalchemy
+
+[handlers]
+keys = console
+
+[formatters]
+keys = generic
+
+[logger_root]
+level = DEBUG
+
+[logger_zk]
+level = DEBUG
+
+[logger_sqlalchemy]
+level = DEBUG
+
+[handler_console]
+class = StreamHandler
+
diff --git a/zk/model/attachment.py b/zk/model/attachment.py
index 0fb936810..36e97790e 100644
--- a/zk/model/attachment.py
+++ b/zk/model/attachment.py
@@ -13,17 +13,18 @@
class Attachment(Base):
__tablename__ = 'attachment'
+ # columns
id = sa.Column(sa.types.Integer, primary_key=True)
-
proposal_id = sa.Column(sa.types.Integer, sa.ForeignKey('proposal.id'), nullable=False)
filename = sa.Column(sa.types.Text, key='_filename', nullable=False, default='attachment')
content_type = sa.Column(sa.types.Text, key='_content_type', nullable=False, default='application/octet-stream')
-
content = sa.Column(sa.types.Binary, nullable=False)
-
creation_timestamp = sa.Column(sa.types.DateTime, nullable=False, default=sa.func.current_timestamp())
last_creation_timestamp = sa.Column(sa.types.DateTime, nullable=False, default=sa.func.current_timestamp(), onupdate=sa.func.current_timestamp())
+ # relations
+ proposal = sa.orm.relation('Proposal')
+
def __init__(self, **kwargs):
# remove the args that should never be set via creation
diff --git a/zk/model/fulfilment.py b/zk/model/fulfilment.py
index 961de5ed7..5faac3b5f 100644
--- a/zk/model/fulfilment.py
+++ b/zk/model/fulfilment.py
@@ -140,12 +140,9 @@ class Fulfilment(Base):
__tablename__ = 'fulfilment'
id = sa.Column(sa.types.Integer, primary_key=True)
- person_id = sa.Column(sa.types.Integer, sa.ForeignKey('person.id'),
- nullable=False)
- type_id = sa.Column(sa.types.Integer, sa.ForeignKey('fulfilment_type.id'),
- nullable=False)
- status_id = sa.Column(sa.types.Integer, sa.ForeignKey('fulfilment_status.id'),
- nullable=False)
+ person_id = sa.Column(sa.types.Integer, sa.ForeignKey('person.id'), nullable=False)
+ type_id = sa.Column(sa.types.Integer, sa.ForeignKey('fulfilment_type.id'), nullable=False)
+ status_id = sa.Column(sa.types.Integer, sa.ForeignKey('fulfilment_status.id'), nullable=False)
code = sa.Column(sa.types.Text, unique=True)
creation_timestamp = sa.Column(sa.types.DateTime, nullable=False,
default=sa.func.current_timestamp())
@@ -175,7 +172,7 @@ class Fulfilment(Base):
)
# relations
- person = sa.orm.relation(Person, backref='fulfilments', lazy='subquery')
+ person = sa.orm.relation(Person)
type = sa.orm.relation(FulfilmentType)
status = sa.orm.relation(FulfilmentStatus)
groups = sa.orm.relation(FulfilmentGroup, secondary=fulfilment_group_map, backref='fulfilments')
diff --git a/zk/model/proposal.py b/zk/model/proposal.py
index d4af8e1f9..329389631 100644
--- a/zk/model/proposal.py
+++ b/zk/model/proposal.py
@@ -224,6 +224,10 @@ def find_by_id(cls, id, abort_404 = True):
abort(404, "No such proposal object")
return result
+ @classmethod
+ def find_by_title(cls, title):
+ return Session.query(Proposal).filter_by(title=title).order_by(Proposal.title).all()
+
@classmethod
def find_all(cls):
return Session.query(Proposal).order_by(Proposal.id).all()
diff --git a/zk/tests/model/fixtures.py b/zk/tests/model/fixtures.py
index e2a7efcbf..35a1cbef5 100644
--- a/zk/tests/model/fixtures.py
+++ b/zk/tests/model/fixtures.py
@@ -6,11 +6,20 @@
from zk.model.invoice import Invoice
from zk.model.invoice_item import InvoiceItem
from zk.model.registration import Registration
+from zk.model.registration_product import RegistrationProduct
from zk.model.attachment import Attachment
from zk.model.stream import Stream
from zk.model.review import Review
from zk.model.role import Role
from zk.model.config import Config
+from zk.model.password_reset_confirmation import PasswordResetConfirmation
+from zk.model.url_hash import URLHash
+from zk.model.product_category import ProductCategory
+from zk.model.product import Product
+from zk.model.ceiling import Ceiling
+from zk.model.fulfilment import Fulfilment, FulfilmentItem, FulfilmentType, FulfilmentStatus
+
+from datetime import datetime
import factory
from factory.alchemy import SQLAlchemyModelFactory
@@ -66,6 +75,104 @@ class Meta: model = Config
value = factory.LazyAttribute(lambda x: faker.word())
description = factory.LazyAttribute(lambda x: faker.sentence(nb_words=15))
+class CeilingFactory(_ModelFactory):
+ class Meta: model = Ceiling
+ name = factory.Sequence(lambda n: "name%03d" % n)
+
+class URLHashFactory(_ModelFactory):
+ class Meta: model = URLHash
+ id = factory.Sequence(lambda n: n)
+ url = '/'
+ url_hash = factory.Sequence(lambda n: "D00D%03d" % n)
+ timestamp = datetime.now()
+
+class PersonFactory(_ModelFactory):
+ class Meta: model = Person
+
+ id = factory.Sequence(lambda n: n)
+ email_address = factory.Sequence(lambda n: "email%03d@personfactory.com" % n)
+
+ creation_timestamp = '2000-01-01'
+ last_modification_timestamp = '2000-01-01'
+ url_hash = "A"*64
+ activated = True
+ i_agree = True
+
+ # Set default passwords
+ # password is set to an encrypted version of password
+ # raw_password is set to an unencrypted version of password, but not stored in DB
+ post__raw_password = 'a_swell_password'
+ password = 'a_swell_password'
+
+ # Some fields are overriden by the Person constructor, so we can't set them
+ # So we stash them, generate the object, then override the value
+ # This technique takes advantage of the factory_boy post_generation hook
+ @classmethod
+ def _generate(cls, create, attrs):
+ override = ["creation_timestamp", "activated", "badge_printed", "url_hash"]
+ for key in override:
+ if key in attrs:
+ attrs["post__"+key] = attrs.pop(key)
+
+ # Person __init__ function uses Config.get('password_salt')
+ try:
+ Config.get('password_salt')
+ except:
+ ConfigFactory.create(key="password_salt", value=23)
+ return super(PersonFactory, cls)._generate(create, attrs)
+
+ # post_generation extracts named (post__) elements, presents them after creation
+ @factory.post_generation
+ def post(obj, create, extracted, **kwargs):
+ for key in kwargs:
+ obj.__dict__[key] = kwargs[key]
+
+
+
+class FulfilmentStatusFactory(_ModelFactory):
+ class Meta: model = FulfilmentStatus
+ id = factory.Sequence(lambda n: n)
+ name = factory.Sequence(lambda n: "status %03d" % n)
+
+class FulfilmentTypeFactory(_ModelFactory):
+ class Meta: model = FulfilmentType
+ id = factory.Sequence(lambda n: n)
+ initial_status = factory.SubFactory(FulfilmentStatusFactory)
+ name = factory.Sequence(lambda n: "type %03d" % n)
+
+class FulfilmentFactory(_ModelFactory):
+ class Meta: model = Fulfilment
+ id = factory.Sequence(lambda n: n)
+ person = factory.SubFactory(PersonFactory)
+ type = factory.SubFactory(FulfilmentTypeFactory)
+ status = factory.SubFactory(FulfilmentStatusFactory)
+
+class ProductCategoryFactory(_ModelFactory):
+ class Meta: model = ProductCategory
+ id = factory.Sequence(lambda n: n)
+ name = factory.Sequence(lambda n: "product category %03d" % n)
+ description = factory.Sequence(lambda n: "factory generated category %03d" % n)
+ display = 'radio'
+ display_mode = 'grid'
+ display_order = 10
+ invoice_free_products = True
+
+class ProductFactory(_ModelFactory):
+ class Meta: model = Product
+ id = factory.Sequence(lambda n: n)
+ fulfilment_type = factory.SubFactory(FulfilmentTypeFactory)
+ category = factory.SubFactory(ProductCategoryFactory)
+ active = True
+ description = factory.Sequence(lambda n: "factory generated product %03d" % n)
+ cost = factory.Sequence(lambda n: n*100)
+
+class FulfilmentItemFactory(_ModelFactory):
+ class Meta: model = FulfilmentItem
+ id = factory.Sequence(lambda n: n)
+ fulfilment = factory.SubFactory(FulfilmentFactory)
+ product = factory.SubFactory(ProductFactory)
+ qty = factory.Sequence(lambda n: (n+1)*3)
+
class ProposalFactory(_ModelFactory):
class Meta: model = Proposal
id = factory.Sequence(lambda n: n)
@@ -89,34 +196,23 @@ class Meta: model = Proposal
# last_modification_timestamp = default current_timestamp()
-class PersonFactory(_ModelFactory):
- class Meta: model = Person
-
+class PasswordResetConfirmationFactory(_ModelFactory):
+ class Meta: model = PasswordResetConfirmation
id = factory.Sequence(lambda n: n)
- email_address = factory.Sequence(lambda n: "email%03d@example.com" % n)
+ email_address = factory.Sequence(lambda n: "email%03d@passwordresetconfirmationfactory.com" % n)
+ url_hash = "R"*64
+ timestamp = factory.LazyAttribute(lambda o: datetime.now())
- creation_timestamp = '2000-01-01'
- last_modification_timestamp = '2000-01-01'
- url_hash = "A"*64
- activated = True
- i_agree = True
-
- # Some fields are overriden by the Person constructor, so we can't set them
+ # Some fields are overriden by the constructor, so we can't set them
# So we stash them, generate the object, then override the value
# This technique takes advantage of the factory_boy post_generation hook
@classmethod
def _generate(cls, create, attrs):
- override = ["creation_timestamp", "activated", "badge_printed", "url_hash"]
+ override = ["timestamp"]
for key in override:
if key in attrs:
attrs["post__"+key] = attrs.pop(key)
-
- # Person __init__ function uses Config.get('password_salt')
- try:
- Config.get('password_salt')
- except:
- ConfigFactory.create(key="password_salt", value=23)
- return super(PersonFactory, cls)._generate(create, attrs)
+ return super(PasswordResetConfirmationFactory, cls)._generate(create, attrs)
# post_generation extracts named (post__) elements, presents them after creation
@factory.post_generation
@@ -148,13 +244,14 @@ class Meta: model = Review
class InvoiceFactory(_ModelFactory):
class Meta: model = Invoice
+ id = factory.Sequence(lambda n: n)
person = factory.SubFactory(PersonFactory)
class InvoiceItemFactory(_ModelFactory):
class Meta: model = InvoiceItem
id = factory.Sequence(lambda n: n)
- # TODO: invoice is required
+ invoice = factory.SubFactory(InvoiceFactory)
description = factory.Sequence(lambda n: "factory generated item %03d" % n)
qty = factory.Sequence(lambda n: n+1)
cost = factory.Sequence(lambda n: (n+1)*10)
@@ -163,3 +260,10 @@ class Meta: model = InvoiceItem
class RegistrationFactory(_ModelFactory):
class Meta: model = Registration
id = factory.Sequence(lambda n: n)
+
+
+class RegistrationProductFactory(_ModelFactory):
+ class Meta: model = RegistrationProduct
+ registration_id = factory.SubFactory(RegistrationFactory)
+ product_id = factory.SubFactory(ProductFactory)
+ qty = 1
diff --git a/zkpylons/tests/functional/__init__.py b/zkpylons/tests/functional/__init__.py
index b5bcd09cc..b71123807 100644
--- a/zkpylons/tests/functional/__init__.py
+++ b/zkpylons/tests/functional/__init__.py
@@ -1,398 +1 @@
-# FIXME me after pylons upgrade
-#import md5
-#import os
-#import re
-#import warnings
-#
-#from formencode import variabledecode
-#from paste.deploy import loadapp
-#from paste.fixture import TestApp
-#from routes import url_for
-#from sqlalchemy.orm import create_session
-#
-#from zkpylons import model
-#from zkpylons.config.routing import make_map
-#from zkpylons.tests import TestBase, monkeypatch
-#
-#here_dir = os.path.dirname(__file__)
-#conf_dir = os.path.dirname(os.path.dirname(os.path.dirname(here_dir)))
-#
-#class ControllerTest(TestBase):
-# """Base class for controller tests"""
-# def __init__(self, *args):
-# wsgiapp = loadapp('config:test.ini', relative_to=conf_dir)
-# self.app = TestApp(wsgiapp)
-# super(ControllerTest, self).__init__(*args)
-#
-# def setUp(self):
-# # add a routing map for testing routes within the controller tests
-# self.map = make_map()
-#
-# # create a db session
-# self.dbsession = create_session()
-#
-# def assertEmptyModel(self, model=None):
-# """Check that there are no objects left in the data store.
-#
-# We leak knowledge of inheriting classes here, by testing to see if
-# they've set the model attribute.
-# """
-# if model is None:
-# if hasattr(self, 'model'):
-# model = self.model
-#
-# if model:
-# contents = self.dbsession.query(model).all()
-# self.assertEqual([], contents, "model %r is not empty (contains %r)" % (model, contents))
-#
-#
-#class CRUDControllerTestGenerator(type):
-# """Monkeypatching metaclass for cruddy controller test generation.
-#
-# This metaclass constructs test methods at class definition time
-# based on the class attributes in the child; this way we can define
-# a few bits of test data and have the test runner run as many tests
-# on it as possible.
-# """
-# def __init__(mcs, name, bases, classdict):
-# type.__init__(mcs, name, bases, classdict)
-#
-# # Don't patch if we're the base class
-# if not name.startswith('Test'):
-# return
-#
-# # patch if we have a model defined
-# if 'model' not in classdict:
-# #warnings.warn("no model attribute in %s" % name, stacklevel=2)
-# pass
-# else:
-# for t in ['create', 'edit', 'delete',
-# 'invalid_get_on_edit',
-# 'invalid_get_on_delete',
-# 'invalid_get_on_new',
-# 'delete_nonexistent']:
-# if 'crud' not in classdict or t in classdict['crud']:
-# monkeypatch(mcs, 'test_' + t, t)
-#
-#class CRUDControllerTest(ControllerTest):
-# """Base class for testing CRUD on controller objects.
-#
-# Derived classes should set the following attributes:
-#
-# ``url`` is the first part of the URL that is mapped to this
-# controller.
-#
-# ``name`` is the prefix used in forms, as decoded by FormEncode.
-#
-# ``model`` is the class that this controller acts on.
-#
-# ``samples`` is a list of dictionaries of data to use when testing
-# CRUD operations.
-#
-# ``no_test`` is a list of attributes that should not be compared when
-# comparing the model to the form data, e.g. password confirmation
-# boxes.
-#
-# ``mangles`` is a dictionary of attributes that are mangled by the
-# form proposal process, e.g. passwords that are hashed.
-#
-# An example using this base class:
-#
-# class TestSomeController(CRUDControllerTest):
-# name = 'Person'
-# model = model.core.Person
-# url = '/person'
-# samples = [dict(name='testguy',
-# password='test',
-# password_confirm='test'),
-# dict(name='testgirl',
-# password='stuff',
-# password_confirm='stuff')]
-# no_test = ['password_confirm']
-# mangles = dict(password=lambda p: md5.new(p).hexdigest())
-# """
-# __metaclass__ = CRUDControllerTestGenerator
-#
-# def setUp(self):
-# super(CRUDControllerTest, self).setUp()
-#
-# # check that the self.dbsession is currently empty
-# self.assertEmptyModel()
-# self.assertEmptyModel(model.Proposal)
-#
-# def tearDown(self):
-# self.assertEmptyModel(model.Proposal)
-# self.assertEmptyModel()
-#
-# def form_params(self, params):
-# """Flatten the params dictionary for form posting.
-#
-# like a reverse variabledecode.NestedVariables. If self.name exists,
-# prepend it onto the params keys.
-# """
-# if hasattr(self, 'name'):
-# prepend = self.name
-# else:
-# prepend = ''
-#
-# result = variabledecode.variable_encode(params, prepend)
-#
-# return result
-#
-# def additional(self, obj):
-# """Modify the object further before saving.
-#
-# Child classes can override this method to add additional data to the object
-# before it is saved.
-# """
-# return obj
-#
-# def create(self):
-# #"""Test create action on controller"""
-#
-# url = url_for(controller=self.url, action='new')
-# print "url retrieved is:", url
-# # get the form
-# response = self.app.get(url)
-# #print response
-# form = response.form
-# print "form fields are:", form.fields
-#
-# # fill it out
-# params = self.form_params(self.samples[0])
-# for k in params.keys():
-# form[k] = params[k]
-#
-# print "about to submit with these fields:", form.submit_fields()
-#
-# # submit
-# resp = form.submit()
-# #print "response:", resp
-# error_match = re.search(r' this page, skip over them
+ sec = gen_nav(sub_link)
+ # Ensure consistency
+ assert sec['pri_sel'] == pri_link
+ assert sec['pri_text'] == root['pri_text']
+ assert sec['pri_links'] == root['pri_links']
+ assert sec['sec_text'] == sub['sec_text']
+ # Link is "" (this page), text should reflect the selected link
+ assert sec['sec_sel'] == ""
+ assert sec['sec_sel_text'] == sub['sec_text'][sub['sec_links'].index(sub_link)]
From 167081f398d61aebc2c1983c7b59e0fdc12a783b Mon Sep 17 00:00:00 2001
From: David Tulloh
Date: Thu, 27 Aug 2015 18:00:55 +1000
Subject: [PATCH 18/23] Added tests enabled by Config being in db
Also created CompletePersonFactory to simplify some tests
---
zk/tests/model/fixtures.py | 10 ++++
zkpylons/tests/functional/test_home.py | 14 +-----
zkpylons/tests/functional/test_proposal.py | 49 ++++++++++---------
.../tests/functional/test_registration.py | 22 +++------
zkpylons/tests/functional/test_role.py | 26 ++--------
5 files changed, 48 insertions(+), 73 deletions(-)
diff --git a/zk/tests/model/fixtures.py b/zk/tests/model/fixtures.py
index 35a1cbef5..3aef241cf 100644
--- a/zk/tests/model/fixtures.py
+++ b/zk/tests/model/fixtures.py
@@ -127,7 +127,17 @@ def post(obj, create, extracted, **kwargs):
for key in kwargs:
obj.__dict__[key] = kwargs[key]
+class CompletePersonFactory(PersonFactory):
+ # Set lots of additional detail to avoid the incomplete profile flag
+ firstname = factory.Sequence(lambda n: "jim%03d" % n)
+ lastname = factory.Sequence(lambda n: "kibbles%03d" % n)
+ address1 = 'Somewhere',
+ city = 'Over the rainbow',
+ postcode = 'Way up high',
+ @classmethod
+ def reset_sequence(cls):
+ PersonFactory.reset_sequence()
class FulfilmentStatusFactory(_ModelFactory):
class Meta: model = FulfilmentStatus
diff --git a/zkpylons/tests/functional/test_home.py b/zkpylons/tests/functional/test_home.py
index fbbc81da8..1b0e4707e 100644
--- a/zkpylons/tests/functional/test_home.py
+++ b/zkpylons/tests/functional/test_home.py
@@ -1,6 +1,6 @@
from routes import url_for
-from .fixtures import PersonFactory
+from .fixtures import CompletePersonFactory
from .utils import do_login, isSignedIn
class TestHomeController(object):
@@ -8,17 +8,7 @@ def test_index(self, app):
response = app.get(url_for(controller='home'))
def test_index_logged_in_regos_open(self, app, db_session):
- p = PersonFactory(
- # Set full set of detail to avoid incomplete profile flag
- firstname = 'Testguy',
- lastname = 'Testguy',
- i_agree = True,
- activated = True,
- address1 = 'Somewhere',
- city = 'Over the rainbow',
- postcode = 'Way up high',
- )
-
+ p = CompletePersonFactory()
db_session.commit()
# Set redirect origin
diff --git a/zkpylons/tests/functional/test_proposal.py b/zkpylons/tests/functional/test_proposal.py
index ed6cc614c..891bf8600 100644
--- a/zkpylons/tests/functional/test_proposal.py
+++ b/zkpylons/tests/functional/test_proposal.py
@@ -1,4 +1,3 @@
-import pytest
from routes import url_for
from zk.model.attachment import Attachment
@@ -8,7 +7,7 @@
from webtest.forms import Upload
-from .fixtures import PersonFactory, ProposalFactory, AttachmentFactory, RoleFactory, StreamFactory, ProposalStatusFactory, ProposalTypeFactory, TravelAssistanceTypeFactory, AccommodationAssistanceTypeFactory, TargetAudienceFactory
+from .fixtures import PersonFactory, ProposalFactory, AttachmentFactory, RoleFactory, StreamFactory, ProposalStatusFactory, ProposalTypeFactory, TravelAssistanceTypeFactory, AccommodationAssistanceTypeFactory, TargetAudienceFactory, ConfigFactory, CompletePersonFactory
from .utils import do_login
class TestProposal(object):
@@ -62,16 +61,7 @@ def test_proposal_list_lockdown(self, app, db_session):
def test_submit_another(self, app, db_session, smtplib):
# created guy and proposal
- pers = PersonFactory(
- # Set detail to avoid incomplete profile flag
- firstname = 'Testguy',
- lastname = 'Testguy',
- i_agree = True,
- activated = True,
- address1 = 'Somewhere',
- city = 'Over the rainbow',
- postcode = 'Way up high',
- )
+ pers = CompletePersonFactory()
prop = ProposalFactory(title='sub one', people=[pers])
type = ProposalTypeFactory()
stat = ProposalStatusFactory(name = 'Pending Review') # Required by code
@@ -232,21 +222,36 @@ def test_proposal_delete_attachment(self, app, db_session):
atts = Attachment.find_all();
assert atts == []
+from zk.model.config import Config
-@pytest.mark.xfail # TODO: Need a way to set cfp_status at run time
class TestCFPStates(object):
- def test_not_open(self, app):
- lca_info['cfp_status'] = 'not_open'
+ def test_not_open(self, app, db_session):
+ # Entry created by init, update it
+ Config.find_by_pk(('general','cfp_status')).value = 'not_open'
+ pers = CompletePersonFactory()
+ db_session.commit()
+
+ resp = do_login(app, pers)
resp = app.get('/programme/submit_a_proposal')
- assert "is not open!" in unicode(resp.body, 'utf-8')
+ assert "The call for proposals has not opened yet" in unicode(resp.body, 'utf-8')
+
+ def test_open(self, app, db_session):
+ # Entry created by init, update it
+ Config.find_by_pk(('general','cfp_status')).value = 'open'
+ pers = CompletePersonFactory()
+ db_session.commit()
- def test_open(self, app):
- lca_info['cfp_status'] = 'open'
+ resp = do_login(app, pers)
resp = app.get('/programme/submit_a_proposal')
- assert "is open!" in unicode(resp.body, 'utf-8')
+ assert "The name of your proposal" in unicode(resp.body, 'utf-8')
+
+ def test_closed(self, app, db_session):
+ # Entry created by init, update it
+ Config.find_by_pk(('general','cfp_status')).value = 'closed'
+ pers = CompletePersonFactory()
+ db_session.commit()
- def test_closed(self, app):
- lca_info['cfp_status'] = 'open'
+ resp = do_login(app, pers)
resp = app.get('/programme/submit_a_proposal')
- assert "is closed!" in unicode(resp.body, 'utf-8')
+ assert "The call for proposals is now closed" in unicode(resp.body, 'utf-8')
diff --git a/zkpylons/tests/functional/test_registration.py b/zkpylons/tests/functional/test_registration.py
index 20db69986..77c94ec75 100644
--- a/zkpylons/tests/functional/test_registration.py
+++ b/zkpylons/tests/functional/test_registration.py
@@ -4,7 +4,7 @@
from zk.model.registration import Registration
-from .fixtures import PersonFactory, ProductCategoryFactory, ProductFactory, CeilingFactory, ConfigFactory
+from .fixtures import CompletePersonFactory, ProductCategoryFactory, ProductFactory, CeilingFactory, ConfigFactory
from .utils import do_login
@@ -28,23 +28,13 @@ def test_create(self, app, db_session, smtplib):
}
- PersonFactory.reset_sequence()
+ CompletePersonFactory.reset_sequence()
ProductCategoryFactory.reset_sequence()
ProductFactory.reset_sequence()
CeilingFactory.reset_sequence()
- p = PersonFactory(
- email_address = 'testguy@example.org',
- # Set full set of detail to avoid incomplete profile flag
- firstname = 'Testguy',
- lastname = 'McTest',
- i_agree = True,
- activated = True,
- address1 = 'Somewhere',
- city = 'Over the rainbow',
- postcode = 'Way up high',
- )
+ p = CompletePersonFactory()
# Required by templates
CeilingFactory(name='conference-earlybird')
@@ -91,12 +81,12 @@ def test_create(self, app, db_session, smtplib):
# Test we have an email that is suitable
assert smtplib.existing is not None
- assert "testguy@example.org" in smtplib.existing.to_addresses
+ assert p.email_address in smtplib.existing.to_addresses
message = smtplib.existing.message
- assert re.match(r'^.*To:.*testguy@example.org.*', message, re.DOTALL)
- assert re.match(r'^.*Testguy McTest', message, re.DOTALL)
+ assert re.match(r'^.*To:.*%s.*'%p.email_address, message, re.DOTALL)
+ assert re.match(r'^.*%s %s'%(p.firstname, p.lastname), message, re.DOTALL)
assert not re.match(r'^.*
Date: Thu, 27 Aug 2015 23:11:25 +1000
Subject: [PATCH 19/23] Removing last traces of lca_info
lca_info.py.functional test was required to create a testing version of
lca_info.py, back when lca_info.py was required.
This is no longer the case so the file can go bye bye.
---
zkpylons/config/lca_info.py.functional_test | 211 --------------------
1 file changed, 211 deletions(-)
delete mode 100644 zkpylons/config/lca_info.py.functional_test
diff --git a/zkpylons/config/lca_info.py.functional_test b/zkpylons/config/lca_info.py.functional_test
deleted file mode 100644
index 9c3c6e146..000000000
--- a/zkpylons/config/lca_info.py.functional_test
+++ /dev/null
@@ -1,211 +0,0 @@
-# File for holding configuration relative to the current LCA
-# This could be dberised sometimes
-from pytz import timezone
-from datetime import datetime
-import os
-
-
-lca_info = {
- 'password_salt' : 'changeme',
- 'password_iterations' : 400000,
-
- 'paymentgateway_userid' : '',
- 'paymentgateway_secretkey' : '',
-
-# Contact email for the committee
- 'contact_email' : 'contact@lca2011.linux.org.au',
-# All email sent by ZK will Bcc here:
- 'bcc_email' : 'archive@lca2011.linux.org.au',
- 'webmaster_email': 'webmaster@lca2011.linux.org.au',
-
-# Event information
- 'event_parent_organisation' : 'Linux Australia',
- 'event_parent_url' : 'http://www.linux.org.au/',
- 'event_generic_name' : 'linux.conf.au',
- 'event_name' : 'linux.conf.au 2011',
- 'event_shortname' : 'lca2011',
- 'event_city' : 'Hobart',
- 'event_host' : 'lca2011.linux.org.au',
- 'event_url' : 'http://lca2011.linux.org.au',
- 'event_permalink' : 'http://lca2011.linux.org.au',
- 'event_hashtag' : '#LCA2011',
- 'event_tax_number' : 'ABN 56 987 117 479',
- 'event_postal_address' : 'PO BOX 2010 Keperra, Queensland, 4054',
- 'event_fax_number' : '',
- 'event_phone_number': '+61 7 3103 7998',
- 'event_byline': 'linux.conf.au 2011 | 24 - 29 Jan | Follow the Flow',
- 'event_pricing_disclaimer': 'All prices are in Australian dollars and include 10% GST.',
- 'event_trademark_notice': 'Linux is a registered trademark of Linus Torvalds',
- 'event_airport_code': 'BNE',
- 'date' : datetime(2011, 1, 24, 9, 0, 00),
- 'media_license_name' : 'Creative Commons Attribution-Share Alike License',
- 'media_license_url' : 'http://creativecommons.org/licenses/by-sa/3.0/',
- #'sales_tax_multiplier' : 0.125,
- 'sales_tax_divisor' : 11,
- 'time_zone' : timezone('Australia/Melbourne'),
-
- 'invoice_message' : 'To qualify for the earlybird discount you must have registered and paid by the 8th of November (unless earlybird tickets sell out earlier).',
-
-# Possible statuses not_open|open|closed
- 'cfp_status' : 'open',
- 'cfmini_status' : 'closed',
- 'proposal_editing' : 'open',
- 'funding_status' : 'not_open',
- 'funding_editing' : 'not_open',
- 'conference_status': 'open',
- 'account_creation': True,
-# Mode
- 'cfp_hide_assistance_info': 'no',
- 'cfp_hide_assistance_options' : 'no',
- 'cfp_hide_scores': 'no',
-
- 'cfp_miniconf_list' : ["(none)", "Sysadmin", "Business", "Haecksen"],
-
- 'sponsors': {
- 'top': [
- {'alt': 'lca2007', 'src': '/images/history/lca2007-logo.png', 'href': 'http://lca2007.linux.org.au/'},
- {'alt': 'lca2006', 'src': '/images/history/lca2006-logo.png', 'href': 'http://lca2006.linux.org.au/'},
- ],
- 'slideshow': [
- {'alt': 'lca2008', 'src': '/images/history/lca2008-logo.png', 'href': 'http://lca2008.linux.org.au/'},
- {'alt': 'lca2009', 'src': '/images/history/lca2009-logo.png', 'href': 'http://lca2009.linux.org.au/'},
- ],
- },
-
- 'proposal_update_email': 'archive@lca2011.linux.org.au', # recieve notifications when proposals are changed. Leave blank for none.
-
- 'google_map_url': 'http://maps.google.com/maps/ms?ie=UTF8&hl=en&msa=0&msid=117014168848232117270.00048b169407c904d6506',
- 'google_map_latlng': '-27.478216,153.019466',
-# mailing lists
- 'mailing_list_announce_url': 'http://lists.linux.org.au/listinfo/lca-announce',
- 'mailing_list_announce_addr': 'lca-announce@linux.org.au',
- 'mailing_list_chat_url': 'http://lists.lca2011.linux.org.au/lca2011-chat',
- 'mailing_list_chat_addr': 'lca2011-chat@lists.lca2011.linux.org.au',
- 'zk_enabled_theme': 'zkpylons',
-}
-
-lca_rego = {
- 'personal_info' : {
- 'phone' : 'yes',
- 'home_address' : 'yes',
- },
-
- # Set to yes to collect PGP key IDs in rego, no to disable collection.
- 'pgp_collection': 'yes',
-
- # Set to no once the conference starts to speed things up
- 'confirm_email_address' : 'yes',
-
- 'ask_past_confs' : 'yes',
- 'lca_optional_stuff' : 'yes',
-
- 'volunteer':
- (
- {'title': 'Volunteer Category', 'questions':
- (
- {'name': 'Student Volunteer', 'description': 'I am eligible to attend as a Student and am willing to donate 100% of my time to the conference. I understand that I will be able to attend for free.'},
- {'name': 'Hobbyist Volunteer', 'description': 'I am eligible to attend as a Hobbyist and am willing to donate at least 50% of my time to the conference. I understand that I will be able to attend for the price of a student admission. (If you are happy to donate more than 50% of your time, please indicate a percentage in the "Other:" section.)'},
- {'name': 'Other Volunteer', 'description': 'I do not fit into the categories above or want to volunteer for a specific project or for less than the percentages above. Please provide details in the "Other:" section.'},
- )
- },
- {'title': 'Availability', 'questions':
- (
- {'name': 'Setup', 'description': 'I am available on the weekend prior to the conference (22 - 23 January) to help with setup.'},
- {'name': 'Sunday Registrations', 'description': 'I am available on the afternoon of Sunday 23 January to assist with pre-conference registrations.'},
- {'name': 'Conference', 'description': 'I am available for the full week of the conference (24 - 28 January).'},
- {'name': 'Pack up', 'description': 'I am available on the evening of Friday 28 January and Saturday 29 January to pack-up the conference.'},
- {'name': 'Other Dates', 'description': 'Please provide details in the "Other:" section.'},
- )
- },
- {'title': 'I am able and willing to help with ...', 'questions':
- (
- {'name': 'Speaker Introductions', 'description': 'Leading A/V and Ushers in a room, introducing speakers, keeping them to schedule, public announcements, etc.'},
- {'name': 'A/V', 'description': 'Filming in a lecture theatre. Training will be provided.'},
- {'name': 'Usher', 'description': 'Helping manage rooms, get people to seats, etc.'},
- {'name': 'Registration Desk', 'description': 'Sign people into the conference and help with general enquiries.'},
- {'name': 'Venue Helper', 'description': 'Help with setting up break times, tables and chairs, and other miscellaneous things.'},
- {'name': 'Other', 'description': 'Please provide details in the "Other:" section.'},
- ),
- }
- ),
- 'shells' : ['bash', 'busybox', 'csh', 'dash', 'emacs', 'ksh', 'sh', 'smrsh', 'tcsh', 'XTree Gold', 'zsh'],
- 'editors' : ['bluefish', 'eclipse', 'emacs', 'gedit', 'jed', 'kate', 'nano', 'vi', 'vim', 'xemacs'],
- 'distros' : ['Arch', 'Arch/Hurd', 'CentOS', 'Darwin', 'Debian', 'Fedora', 'FreeBSD', 'FreeDOS', 'Gentoo', 'Hurd', 'GNU Emacs','Haiku OS','kFreeBSD','L4', 'Mandriva', 'Minix', 'MeeGo', 'NetBSD', 'Nexenta', 'OpenBSD', 'OpenSolaris', 'OpenSuSE', 'SLES','Oracle Enterprise Linux', 'RHEL', 'Slackware', 'Ubuntu', 'Xandros'],
- 'vcses' : ['.bak', 'arch', 'bazaar', 'bitkeeper', 'cvs', 'darcs', 'git', 'mercurial', 'monotone', 'perforce', 'rcs', 'sourcesafe', 'subversion'],
- 'past_confs' : [('99', '1999 (CALU, Melbourne)'), ('01', '2001 (Sydney)'), ('02', '2002 (Brisbane)'), ('03', '2003 (Perth)'), ('04', '2004 (Adelaide)'), ('05', '2005 (Canberra)'), ('06', '2006 (Dunedin)'), ('07', '2007 (Sydney)'), ('08', '2008 (Melbourne)'), ('09', '2009 (Hobart)'), ('10', '2010 (Wellington)'), ('11', '2011 (Brisbane)'), ('12', '2012 (Ballarat)')],
-
- 'silly_description' : {
- 'starts' : ["a", "a", "a", "one", "no"], # bias toward "a"
- 'adverbs' : ["strongly",
- "poorly", "badly", "well", "dynamically",
- "hastily", "statically", "mysteriously",
- "buggily", "extremely", "nicely", "strangely",
- "irritatingly", "unquestionably", "clearly",
- "plainly", "silently", "abstractly", "validly",
- "invalidly", "immutably", "oddly", "disturbingly",
- "atonally", "randomly", "amusingly", "widely",
- "narrowly", "manually", "automatically", "audibly",
- "brilliantly", "independently", "definitively",
- "provably", "improbably", "distortingly",
- "confusingly", "decidedly", "historically",
- "shiny", "troublesome"],
- 'adjectives' : ["invalid", "valid",
- "referenced", "dereferenced", "unreferenced",
- "illegal", "legal",
- "questionable",
- "alternate", "implemented", "unimplemented",
- "terminal", "non-terminal",
- "static", "dynamic",
- "qualified", "unqualified",
- "constant", "variable",
- "volatile", "non-volatile",
- "abstract", "concrete",
- "fungible", "non-fungible",
- "untyped", "variable",
- "mutable", "immutable",
- "sizable", "minuscule",
- "perverse", "immovable",
- "compressed", "uncompressed",
- "surreal", "allegorical",
- "trivial", "nontrivial"],
- 'nouns' : ["pointer", "structure",
- "definition", "declaration", "type", "union",
- "coder", "admin", "hacker", "kitten", "mistake",
- "conversion", "implementation", "design", "analysis",
- "neophyte", "expert", "bundle", "package",
- "abstraction", "theorem", "display", "distro",
- "restriction", "device", "function", "reference",
- "alien"]
- }
-}
-
-lca_menu = [
- ('Home', '/', 'home'),
- ('About', '/about/linux.conf.au', 'about'),
- ('Brisbane', '/brisbane/about', 'brisbane'),
- ('Sponsors', '/sponsors/sponsors', 'sponsors'),
- ('Programme', '/programme/about', 'programme'),
- ('Register', '/register/prices', 'register'),
- #('Register', '/register/prices', 'register'), # -- Stage 4
- ('Media', '/media/news', 'media'),
- ('Contact', '/contact', 'contact'),
- #('Planet', 'http://planet.lca2011.linux.org.au', 'planet'),
- ('Wiki', '/wiki', 'wiki'),
-]
-
-lca_submenus = {
- 'about': ['linux.conf.au', 'lca2011 Ninjas', 'Venue', 'History', 'Linux/Open Source', 'Harassment'],
- 'brisbane': ['About', 'Sightseeing'],
- 'sponsors': ['Sponsors', 'Why Sponsor'],
- #'programme': ['About', 'Social Events', 'Open Day', 'Partners Programme'], # stage 0
- #'programme': ['About', 'Papers', 'Miniconfs', 'Presentations', 'Posters', 'Tutorials'], # stage 1
- #'programme': ['About', 'Keynotes', 'Miniconf Info', 'Papers Info', 'Social Events', 'Open Day', 'Partners Programme'], # stage 2
- #'programme': ['About', 'Keynotes', 'Miniconfs', 'Speakers Info', 'Social Events', 'Open Day', 'Partners Programme'], # stage 2a
- 'programme': ['About', 'Keynotes', 'Miniconfs', 'Schedule', 'Social Events', 'Open Day', 'Partners Programme'], # stage 3
- #'programme': ['About', 'Keynotes', 'Miniconfs','Schedule','Social Events','Open Day', 'Partners Programme'], # stage 4?
- 'register': ['Prices', 'Accommodation', 'Terms and Conditions'],
- #'register': ['Prices', 'Funding', 'Accommodation', 'Terms and Conditions'],
- #'register': ['Prices/Ticket types','Terms and Conditions','Accommodation','Partners programme'], # stage 4
- 'media': ['News','In the press','Graphics']
-}
-
From 676d5b8be3b86902bb6dec4cb9290c59104fa143 Mon Sep 17 00:00:00 2001
From: David Tulloh
Date: Thu, 27 Aug 2015 23:14:42 +1000
Subject: [PATCH 20/23] Cleaned up db initialisation
Pull the db initialisation string from the test ini file, this matches
what the application initialisation does so we have a single source.
Also cleaned up the population of the initial config table values for
the functional tests.
---
zk/tests/model/conftest.py | 9 ++++--
zkpylons/tests/functional/conftest.py | 41 ++++++++++++++++++---------
2 files changed, 34 insertions(+), 16 deletions(-)
diff --git a/zk/tests/model/conftest.py b/zk/tests/model/conftest.py
index 8a8d3389f..66598570c 100644
--- a/zk/tests/model/conftest.py
+++ b/zk/tests/model/conftest.py
@@ -9,6 +9,12 @@
import zk.model.meta as meta
import zkpylons.model.meta as pymeta
+from ConfigParser import ConfigParser
+
+# Get settings from config file, only need it once
+ini = ConfigParser()
+ini.read("test.ini")
+
@pytest.yield_fixture
def app_config():
config = testing.setUp()
@@ -20,8 +26,7 @@ def app_config():
@pytest.yield_fixture
def db_session(app_config):
# Set up SQLAlchemy to provide DB access
- # TODO: engine config should be from config file
- meta.engine = create_engine('postgresql://postgres@localhost/zktest')
+ meta.engine = create_engine(ini.get("app:main", "sqlalchemy.url"))
meta.Session.configure(bind=meta.engine)
meta.Session.configure(autoflush=True)
diff --git a/zkpylons/tests/functional/conftest.py b/zkpylons/tests/functional/conftest.py
index cf655da77..c9a5b3865 100644
--- a/zkpylons/tests/functional/conftest.py
+++ b/zkpylons/tests/functional/conftest.py
@@ -13,6 +13,14 @@
from paste.fixture import Dummy_smtplib
+from .fixtures import ConfigFactory
+
+from ConfigParser import ConfigParser
+
+# Get settings from config file, only need it once
+ini = ConfigParser()
+ini_filename = "test.ini"
+ini.read(ini_filename)
# Logging displayed by passing -s to pytest
#logging.basicConfig(level=logging.DEBUG, stream=sys.stdout)
@@ -27,7 +35,7 @@ def map():
@pytest.yield_fixture
def app():
- wsgiapp = loadapp('config:test.ini', relative_to=".")
+ wsgiapp = loadapp('config:'+ini_filename, relative_to=".")
app = TestApp(wsgiapp)
yield app
@@ -67,20 +75,26 @@ def expunge_all(self):
def query(self, cls):
return self.s1.query(cls)
+base_general_config = {
+ 'sponsors' : {"top":[],"slideshow":[]},
+ 'account_creation' : True,
+ 'cfp_status' : "open",
+ 'conference_status' : "open",
+ }
+
+base_rego_config = {
+ 'personal_info' : {"phone":"yes","home_address":"yes"}
+ }
@pytest.yield_fixture
def db_session():
# Set up SQLAlchemy to provide DB access
-
dsess = DoubleSession(zkmeta.Session, pymeta.Session)
-
# Clean up old sessions if they exist
dsess.remove()
- # TODO: engine config should be from config file
- engine = create_engine('postgresql://postgres@localhost/zktest')
-
+ engine = create_engine(ini.get("app:main", "sqlalchemy.url"))
# Drop all data to establish known state, mostly to prevent primary-key conflicts
engine.execute("drop schema if exists public cascade")
@@ -88,16 +102,15 @@ def db_session():
zkmeta.Base.metadata.create_all(engine)
- # Create basic config values, to allow basic pages to render
- engine.execute("INSERT INTO config (category, key, value, description) VALUES ('general', 'sponsors', '{\"top\":[],\"slideshow\":[]}', '')")
- engine.execute("INSERT INTO config (category, key, value, description) VALUES ('rego', 'personal_info', '{\"phone\":\"yes\",\"home_address\":\"yes\"}', '')")
- engine.execute("INSERT INTO config (category, key, value, description) VALUES ('general', 'account_creation', 'true', '')")
- engine.execute("INSERT INTO config (category, key, value, description) VALUES ('general', 'cfp_status', '\"open\"', '')")
- engine.execute("INSERT INTO config (category, key, value, description) VALUES ('general', 'conference_status', '\"open\"', '')")
- engine.execute("COMMIT")
-
dsess.configure(engine)
+ # Create basic config values, to allow basic pages to render
+ for key, val in base_general_config.iteritems():
+ ConfigFactory(key=key, value=val)
+ for key, val in base_rego_config.iteritems():
+ ConfigFactory(category='rego', key=key, value=val)
+ dsess.commit()
+
# Run the actual test
yield dsess
From e2068b02ab944d7b544dbb80df2ff38d0de2bd8c Mon Sep 17 00:00:00 2001
From: David Tulloh
Date: Fri, 28 Aug 2015 10:52:18 +1000
Subject: [PATCH 21/23] Add missing dependency - reportlab
Fixes #428
---
requirements.txt | 1 +
1 file changed, 1 insertion(+)
diff --git a/requirements.txt b/requirements.txt
index 5c5752f8d..c0ad75ee9 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -12,6 +12,7 @@ SQLAlchemy>=0.8.0b2
transaction
waitress
zope.sqlalchemy
+reportlab
#### LEGACY (zkpylon) requirements:
AuthKit>=0.4.0
From b293f929486560d371a2fa0d9a63e687dfbbede0 Mon Sep 17 00:00:00 2001
From: David Tulloh
Date: Fri, 28 Aug 2015 19:21:44 +1000
Subject: [PATCH 22/23] URL permission test/audit
This extensive (but not comprehensive) test hits a large number of urls
with each of the different roles that we use.
The response is then compared to a known "good" table to ensure that the
permissions are correct.
In practice the "good" table is our current permission set. This test is
designed to provide a backstop and prevent any inadvertant loosening or
regression in permissions.
It also provides a useful overview of the state of the system.
---
zkpylons/tests/functional/test_permissions.py | 1429 +++++++++++++++++
1 file changed, 1429 insertions(+)
create mode 100644 zkpylons/tests/functional/test_permissions.py
diff --git a/zkpylons/tests/functional/test_permissions.py b/zkpylons/tests/functional/test_permissions.py
new file mode 100644
index 000000000..77bc4a1cb
--- /dev/null
+++ b/zkpylons/tests/functional/test_permissions.py
@@ -0,0 +1,1429 @@
+import pytest
+from .fixtures import CompletePersonFactory, RoleFactory
+from .utils import do_login, isSignedIn
+
+
+roles = ['public', 'none', # These first two aren't real roles
+ 'organiser', 'team', 'reviewer',
+ 'miniconf', 'proposals_chair', 'late_submitter',
+ 'funding_reviewer', 'press', 'miniconfsonly']
+
+
+# All controller functions found by running the following line then hand editing
+# grep "def " zkpylons/controllers/*.py | sed -r 's/.*\/([^/]+).py: *def *([^(]+).*/{"url":"\1\/\2", "resp":[200,200,200,200,200,200,200,200,200,200]},/' | awk '{printf "%-50s %s\n",$1,$2}'
+# Hitting all these urls isn't sane, it isn't meant to be
+# This test is designed to catch any accidental permission changes
+controller_entry_points = [
+ {'url':'/admin/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/admin/index', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/rej_proposals_abstracts', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/_collect_garbage', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/admin/_known_objects', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/admin/list_attachments', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/auth_users', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/proposal_list', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/miniconf_list', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/proposals_by_strong_rank', 'resp':[403,403,403,403,200,403,403,403,403,403,403]},
+ {'url':'/admin/proposals_by_max_rank', 'resp':[403,403,403,403,200,403,403,403,403,403,403]},
+ {'url':'/admin/proposals_by_stream', 'resp':[403,403,403,403,200,403,403,403,403,403,403]},
+ {'url':'/admin/proposals_by_number_of_reviewers', 'resp':[403,403,403,403,200,403,403,403,403,403,403]},
+ {'url':'/admin/proposals_by_date', 'resp':[403,403,403,403,200,403,403,403,403,403,403]},
+ {'url':'/admin/funding_requests_by_strong_rank', 'resp':[403,403,403,403,403,403,403,403,200,403,403]},
+ {'url':'/admin/funding_requests_by_max_rank', 'resp':[403,403,403,403,403,403,403,403,200,403,403]},
+ {'url':'/admin/_countdown', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/admin/change_config', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/config', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/_get_config', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/admin/_put_config', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/admin/silly_description_checksum', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/registered_followup', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/registered_speakers', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/my_cmp', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/admin/registered_volunteers', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/my_cmp', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/admin/registered_parking', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/registered_accommodation', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/registered_without_accom', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/registered_bagdrop', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/registered_prestuff', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/reconcile', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/linux_australia_signup', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/lca_announce_signup', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/lca_chat_signup', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/volunteer_signup', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/speaker_signup', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/miniconf_org_signup', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/partners_programme_signup', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/speakers_partners', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/talks', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/zkpylons_sales', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/partners_programme', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/planet_lca', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/nonregistered', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/_keysigning_participants_list', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/admin/_keysigning_single', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/admin/_keysigning_conference', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/admin/_keysigning_participants', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/admin/rego_desk_list', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/previous_years_stats', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/people_by_country', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/speakers_by_country', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/people_by_state', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/favourite_distro', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/favourite_editor', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/favourite_shell', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/favourite_vcs', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/email_registration_reminder', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/late_submitters', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/rego_foreign', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/rego_list', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/_volunteer_grid', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/admin/paid_counts_by_date', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/paid_product_by_date', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/paid_ticket_by_date', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/paid_accom_by_date', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/av_norelease', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/av_technical_requirements', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/random_delegates', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/_random_delegates_excluded', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/admin/_destroy_personal_information', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/admin/lookup', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/generate_fulfilment', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/fulfilment_report', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/generate_boardingpass', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/generate_fulfilment_codes', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/generate_code', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/admin/_keysigning_pdf', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/admin/csv_response', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/admin/get_column_names', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/admin/sql_execute', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/admin/sql_response', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/admin/foo', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/admin/sql_data', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/admin/table_response', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/admin/table_csv_response', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/attachment/__before__', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/attachment/delete', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/attachment/_delete', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/attachment/view', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/boardingpass/pdf', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/ceiling/validate_python', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/ceiling/__before__', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/ceiling/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/ceiling/_new', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/ceiling/view', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/ceiling/special_cases', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/ceiling/index', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/ceiling/edit', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/ceiling/_edit', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/ceiling/delete', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/ceiling/_delete', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/checkin/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/checkin/lookup', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/checkin/person_data', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/checkin/update_fulfilments', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/checkin/get_talk', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/checkin/bio_list', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/db_content/__before__', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/db_content/index', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/db_content/new', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/db_content/_new', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/db_content/view', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/db_content/page', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/db_content/edit', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/db_content/_edit', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/db_content/delete', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/db_content/_delete', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/db_content/list_news', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/db_content/list_press', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/db_content/rss_news', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/db_content/upload', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/db_content/delete_folder', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/db_content/delete_file', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/db_content/list_files', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/db_content/caseinsensitive_sort', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/db_content/parse_dbpage', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/error/document', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/error/img', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/error/style', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/error/_serve_file', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/event/__before__', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/event/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/event/_new', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/event/new_proposals', 'resp':[403,403,302,403,403,403,403,403,403,403,403]},
+ {'url':'/event/view', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/event/index', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/event/edit', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/event/_edit', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/event/delete', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/event/_delete', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/event_type/__before__', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/event_type/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/event_type/_new', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/event_type/index', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/event_type/edit', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/event_type/_edit', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/event_type/delete', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/event_type/_delete', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment/__before__', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment/_new', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment/view', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment/person', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment/index', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment/edit', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment/_edit', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment/delete', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment/_delete', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment/_badge', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment/badge_pdf', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment/badge_print', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment/swag_give', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_group/__before__', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_group/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_group/_new', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_group/view', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_group/pdf', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_group/index', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_group/edit', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_group/_edit', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_group/delete', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_group/_delete', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_status/__before__', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_status/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_status/_new', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_status/view', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_status/index', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_status/edit', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_status/_edit', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_status/delete', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_status/_delete', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_type/__before__', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_type/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_type/_new', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_type/view', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_type/index', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_type/edit', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_type/_edit', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_type/delete', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_type/_delete', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/funding/__init__', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/funding/__before__', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/funding/new', 'resp':[403,200,200,200,200,200,200,200,200,200,200]},
+ {'url':'/funding/_new', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/funding/attach', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/funding/_attach', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/funding/view', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/funding/edit', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/funding/_edit', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/funding/index', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/funding/approve', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/funding/_approve', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/funding/withdraw', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/funding/_withdraw', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/funding/_is_reviewer', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/funding/review', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/funding/_review', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/funding/review_index', 'resp':[403,403,403,403,403,403,403,403,200,403,403]},
+ {'url':'/funding/summary', 'resp':[403,403,403,403,403,403,403,403,200,403,403]},
+ {'url':'/funding/_score_sort', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/funding/_review_avg_score', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/funding_attachment/__before__', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/funding_attachment/delete', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/funding_attachment/_delete', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/funding_attachment/view', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/funding_review/__before__', 'resp':[403,403,403,403,403,403,403,403,500,403,403]},
+ {'url':'/funding_review/_is_reviewer', 'resp':[403,403,403,403,403,403,403,403,500,403,403]},
+ {'url':'/funding_review/edit', 'resp':[403,403,403,403,403,403,403,403,500,403,403]},
+ {'url':'/funding_review/_edit', 'resp':[403,403,403,403,403,403,403,403,500,403,403]},
+ {'url':'/funding_review/delete', 'resp':[403,403,403,403,403,403,403,403,500,403,403]},
+ {'url':'/funding_review/_delete', 'resp':[403,403,403,403,403,403,403,403,500,403,403]},
+ {'url':'/funding_review/summary', 'resp':[403,403,403,403,403,403,403,403,200,403,403]},
+ {'url':'/funding_review/index', 'resp':[403,403,403,403,403,403,403,403,500,403,403]},
+ {'url':'/funding_review/view', 'resp':[403,403,403,403,403,403,403,403,500,403,403]},
+ {'url':'/funding_type/__before__', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/funding_type/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/funding_type/_new', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/funding_type/view', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/funding_type/index', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/funding_type/edit', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/funding_type/_edit', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/funding_type/delete', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/funding_type/_delete', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/home/index', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/invoice/_to_python', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/invoice/_from_python', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/invoice/__before__', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/invoice/product_list', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/invoice/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/invoice/_new', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/invoice/generate_hash', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/invoice/view', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/invoice/printable', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/invoice/index', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/invoice/remind', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/invoice/_remind', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/invoice/_check_invoice', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/invoice/pay', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/invoice/get_invoice', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/invoice/pay_invoice', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/invoice/_pay', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/invoice/refund', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/invoice/pay_manual', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/invoice/pdf', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/invoice/void', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/invoice/unvoid', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/invoice/extend', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/location/__before__', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/location/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/location/_new', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/location/view', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/location/index', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/location/edit', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/location/_edit', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/location/delete', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/location/_delete', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/location/ical', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/map/index', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/miniconf_proposal/__init__', 'resp':[403,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/miniconf_proposal/__before__', 'resp':[403,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/miniconf_proposal/new', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/miniconf_proposal/_new', 'resp':[403,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/miniconf_proposal/index', 'resp':[403,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/not_found/view', 'resp':[200,200,200,200,200,200,200,200,200,200,200]},
+ {'url':'/payment/index', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/payment/view', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/payment/new', 'resp':[200,200,200,200,200,200,200,200,200,200,200]},
+ {'url':'/payment/new_manual', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/payment/_new_manual', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/person/validate_python', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/person/validate_python', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/person/__before__', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/person/signin', 'resp':[403,302,302,302,302,302,302,302,302,302,302]},
+ {'url':'/person/finish_login', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/person/_redirect_user_optimally', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/person/_signin', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/person/persona_login', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/person/signout_confirm', 'resp':[200,200,200,200,200,200,200,200,200,200,200]},
+ {'url':'/person/signout', 'resp':[302,302,302,302,302,302,302,302,302,302,302]},
+ {'url':'/person/activate', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/person/confirm', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/person/forgotten_password', 'resp':[200,200,200,200,200,200,200,200,200,200,200]},
+ {'url':'/person/_forgotten_password', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/person/reset_password', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/person/_reset_password', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/person/finish_signup', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/person/_finish_signup', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/person/finish_edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/person/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/person/_edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/person/reprint', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/person/new', 'resp':[200,200,200,200,200,200,200,200,200,200,200]},
+ {'url':'/person/_new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/person/new_incomplete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/person/_new_incomplete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/person/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/person/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/person/roles', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/person/_roles', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/person/offer', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/person/_offer', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/photocomp/__init__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/photocomp/filename', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/photocomp/pathname', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/photocomp/write_orig', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/photocomp/write_scaled', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/photocomp/delete', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/photocomp/add', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/photocomp/get', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/photocomp/read_db', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/photocomp/from_filename', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/photocomp/get_db_dir', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/photocomp/__repr__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/photocomp/index', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/photocomp/photo_title', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/photocomp/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/photocomp/upload', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/photocomp/photo', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/product/__before__', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/product/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/product/_new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/product/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/product/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/product/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/product/_edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/product/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/product/_delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/product/json', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/product_category/validate_python', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/product_category/__before__', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/product_category/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/product_category/_new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/product_category/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/product_category/stats', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/product_category/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/product_category/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/product_category/_edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/product_category/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/product_category/_delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal/__init__', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal/__before__', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal/_new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal/review', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal/_review', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal/attach', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal/_attach', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal/_edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal/review_index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal/summary', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal/approve', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal/_approve', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal/withdraw', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal/_withdraw', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal/latex', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal/clean_abstract', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_status/__before__', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_status/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_status/_new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_status/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_status/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_status/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_status/_edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_status/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_status/_delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_type/__before__', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_type/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_type/_new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_type/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_type/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_type/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_type/_edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_type/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_type/_delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/__init__', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/validate_python', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/__before__', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/_able_to_edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/_product_available', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/_generate_product_schema', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/min_max_validator', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/is_speaker', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/is_miniconf_org', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/is_volunteer', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/is_role', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/is_same_person', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/_new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/_edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/save_details', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/status', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/pay', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/check_invoices', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/manual_invoice', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/invoices_identical', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/_create_invoice', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/apply_voucher', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/_export_list', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/generate_badges', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/_registration_badge_data', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/_sanitise_badge_field', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/remind', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/professionals_latex', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/rego_desk_latex', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_note/__before__', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_note/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_note/_new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_note/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_note/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_note/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_note/_edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_note/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_note/_delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_room/__before__', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_room/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_room/_new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_room/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_room/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_room/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_room/_edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_room/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_room/_delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/review/__before__', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/review/_is_reviewer', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/review/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/review/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/review/_delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/review/summary', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/review/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/review/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/role/__before__', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/role/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/role/_edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/role/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/role/_new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/role/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/role/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/role/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/role/_delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/schedule/__before__', 'resp':[302,302,302,302,302,302,302,302,302,302,302]},
+ {'url':'/schedule/table', 'resp':[302,302,302,302,302,302,302,302,302,302,302]},
+ {'url':'/schedule/table_view', 'resp':[302,302,302,302,302,302,302,302,302,302,302]},
+ {'url':'/schedule/ical', 'resp':[302,302,302,302,302,302,302,302,302,302,302]},
+ {'url':'/schedule/json', 'resp':[302,302,302,302,302,302,302,302,302,302,302]},
+ {'url':'/schedule/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/schedule/_new', 'resp':[302,302,302,302,302,302,302,302,302,302,302]},
+ {'url':'/schedule/view', 'resp':[302,302,302,302,302,302,302,302,302,302,302]},
+ {'url':'/schedule/index', 'resp':[302,302,302,302,302,302,302,302,302,302,302]},
+ {'url':'/schedule/edit', 'resp':[302,302,302,302,302,302,302,302,302,302,302]},
+ {'url':'/schedule/_edit', 'resp':[302,302,302,302,302,302,302,302,302,302,302]},
+ {'url':'/schedule/delete', 'resp':[302,302,302,302,302,302,302,302,302,302,302]},
+ {'url':'/schedule/_delete', 'resp':[302,302,302,302,302,302,302,302,302,302,302]},
+ {'url':'/schedule/view_talk', 'resp':[302,302,302,302,302,302,302,302,302,302,302]},
+ {'url':'/secret_hash/lookup', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/secret_hash/transfer', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/social_network/validate_python', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/social_network/__before__', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/social_network/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/social_network/_new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/social_network/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/social_network/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/social_network/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/social_network/_edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/social_network/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/social_network/_delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/special_offer/validate_python', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/special_offer/__before__', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/special_offer/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/special_offer/_new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/special_offer/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/special_offer/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/special_offer/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/special_offer/_edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/special_offer/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/special_offer/_delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/stream/validate_python', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/stream/__before__', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/stream/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/stream/_new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/stream/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/stream/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/stream/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/stream/_edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/stream/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/stream/_delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/time_slot/__before__', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/time_slot/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/time_slot/_new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/time_slot/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/time_slot/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/time_slot/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/time_slot/_edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/time_slot/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/time_slot/_delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/travel/__before__', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/travel/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/travel/_new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/travel/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/travel/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/travel/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/travel/_edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/travel/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/travel/_delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/uml_graph/dotmodel', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/volunteer/__before__', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/volunteer/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/volunteer/_new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/volunteer/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/volunteer/_edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/volunteer/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/volunteer/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/volunteer/accept', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/volunteer/_accept', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/volunteer/pending', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/volunteer/reject', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/vote/__before__', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/vote/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/vote/_new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/vote/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/vote/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/vote/_edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/vote/revoke', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/vote/_revoke', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/voucher/generate_code', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/voucher/validate_python', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/voucher/__before__', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/voucher/_generate_product_schema', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/voucher/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/voucher/_new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/voucher/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/voucher/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/voucher/_delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]}
+]
+
+# Generated from zkpylons/config/routing.py by hand with scripting help
+# Where parameters were required 23 has been used, shouldn't exist but that isn't what we are checking for
+routing_entry_points = [
+ {'url':'/', 'resp':[200,200,200,200,200,200,200,200,200,200,200]},
+ {'url':'/media/news', 'resp':[200,200,200,200,200,200,200,200,200,200,200]},
+ {'url':'/media/news/rss', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/media/news/0', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/media/in_the_press', 'resp':[200,200,200,200,200,200,200,200,200,200,200]},
+ {'url':'/about/map', 'resp':[200,200,200,200,200,200,200,200,200,200,200]},
+ {'url':'/brisbane/map', 'resp':[200,200,200,200,200,200,200,200,200,200,200]},
+ {'url':'/db_content/list_files', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/db_content/delete_file', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/db_content/delete_folder', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/db_content/upload', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/programme/schedule', 'resp':[200,200,200,200,200,200,200,200,200,200,200]},
+ {'url':'/programme/schedule/ical', 'resp':[200,200,200,200,200,200,200,200,200,200,200]},
+ {'url':'/programme/schedule/json', 'resp':[200,200,200,200,200,200,200,200,200,200,200]},
+ {'url':'/programme/schedule/23', 'resp':[200,200,200,200,200,200,200,200,200,200,200]},
+ {'url':'/programme/schedule/view_talk/23', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/programme/schedule/video', 'resp':[200,200,200,200,200,200,200,200,200,200,200]},
+ {'url':'/programme/schedule/video/23', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/event/new_proposals', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/programme/submit_a_miniconf', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/programme/submit_a_proposal', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal/review_index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal/summary', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal/approve', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/review/summary', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/funding/review_index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/funding/summary', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/funding/approve', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/funding_review/summary', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/invoice/23/pdf', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/invoice/remind', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/invoice/save_new_invoice', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/invoice/product_list', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/remind', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/register/status', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/silly_description', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/generate_badges', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/invoice/generate_hash/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/secret/23', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/person/confirm/23', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ # TODO: This is the second iteration of /person/signin and results differ to the first
+ # I have no idea why the results have changed
+ # More worryingly other results may have also changed, there are some
+ # indications when generating the tests that results were changing based on prior lines.
+ {'url':'/person/signin', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/person/signout', 'resp':[302,302,302,302,302,302,302,302,302,302,302]},
+ {'url':'/person/signout_confirm', 'resp':[200,200,200,200,200,200,200,200,200,200,200]},
+ {'url':'/person/forgotten_password', 'resp':[200,200,200,200,200,200,200,200,200,200,200]},
+ {'url':'/person/reset_password/23', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/person/persona_login', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/person/finish_signup', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/person/new_incomplete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/person/activate', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/registration/professionals_latex', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal/latex', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/product/new/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/product/json', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/23/new_note', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/photocomp/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/photocomp/', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/photocomp/photo/23', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/uml_graph.png', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/uml_graph.jpeg', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/uml_graph.jpg', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/uml_graph.svg', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/uml_graph.dot', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/boardingpass/23', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/db_content/view', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
+ ]
+
+# A combination of the routing rules and a list of all controllers
+# Covers {controller}, {controller}/new, {controller}/new_submit, {controller}/{id}
+# Doesn't cover {controller}/{id}/{action}
+smart_routing_entry_points = [
+ {'url':'/admin/new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/admin/new_submit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/admin/23', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/attachment/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/attachment/new_submit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/attachment/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/boardingpass/new', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/boardingpass/new_submit', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/boardingpass/23', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/ceiling/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/ceiling/new_submit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/ceiling/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/checkin/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/checkin/new_submit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/checkin/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/db_content/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/db_content/new_submit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/db_content/23', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/error/new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/error/new_submit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/error/23', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/event/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/event/new_submit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/event/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/event_type/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/event_type/new_submit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/event_type/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_group/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_group/new_submit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_group/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment/new_submit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/fulfilment/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_status/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_status/new_submit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_status/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_type/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_type/new_submit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_type/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/funding_attachment/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/funding_attachment/new_submit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/funding_attachment/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/funding/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/funding/new_submit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/funding/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/funding_review/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/funding_review/new_submit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/funding_review/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/funding_type/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/funding_type/new_submit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/funding_type/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/home/new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/home/new_submit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/home/23', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/invoice/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/invoice/new_submit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/invoice/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/location/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/location/new_submit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/location/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/map/new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/map/new_submit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/map/23', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/miniconf_proposal/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/miniconf_proposal/new_submit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/miniconf_proposal/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/not_found/new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/not_found/new_submit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/not_found/23', 'resp':[200,200,200,200,200,200,200,200,200,200,200]},
+ {'url':'/payment/new', 'resp':[200,200,200,200,200,200,200,200,200,200,200]},
+ {'url':'/payment/new_submit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/payment/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/person/new', 'resp':[200,200,200,200,200,200,200,200,200,200,200]},
+ {'url':'/person/new_submit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/person/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/photocomp/new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/photocomp/new_submit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/photocomp/23', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/product_category/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/product_category/new_submit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/product_category/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/product/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/product/new_submit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/product/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal/new_submit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_status/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_status/new_submit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_status/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_type/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_type/new_submit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_type/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/new_submit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_note/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_note/new_submit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_note/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_room/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_room/new_submit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_room/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/review/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/review/new_submit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/review/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/role/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/role/new_submit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/role/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/schedule/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/schedule/new_submit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/schedule/23', 'resp':[302,302,302,302,302,302,302,302,302,302,302]},
+ {'url':'/secret_hash/new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/secret_hash/new_submit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/secret_hash/23', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/social_network/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/social_network/new_submit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/social_network/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/special_offer/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/special_offer/new_submit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/special_offer/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/stream/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/stream/new_submit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/stream/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/time_slot/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/time_slot/new_submit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/time_slot/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/travel/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/travel/new_submit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/travel/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/uml_graph/new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/uml_graph/new_submit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/uml_graph/23', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/volunteer/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/volunteer/new_submit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/volunteer/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/vote/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/vote/new_submit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/vote/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/voucher/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/voucher/new_submit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/voucher/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ ]
+
+# Each url is /{controller}/{id}/{action} : where id = 23, the other two are pulled from a grep of each file
+controller_id_entry_points = [
+ {'url':'/admin/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/admin/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/rej_proposals_abstracts', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/_collect_garbage', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/admin/23/_known_objects', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/admin/23/list_attachments', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/auth_users', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/proposal_list', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/miniconf_list', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/proposals_by_strong_rank', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/proposals_by_max_rank', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/proposals_by_stream', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/proposals_by_number_of_reviewers', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/proposals_by_date', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/funding_requests_by_strong_rank', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/funding_requests_by_max_rank', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/_countdown', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/admin/23/change_config', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/config', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/_get_config', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/admin/23/_put_config', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/admin/23/silly_description_checksum', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/registered_followup', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/registered_speakers', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/my_cmp', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/admin/23/registered_volunteers', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/my_cmp', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/admin/23/registered_parking', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/registered_accommodation', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/registered_without_accom', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/registered_bagdrop', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/registered_prestuff', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/reconcile', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/linux_australia_signup', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/lca_announce_signup', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/lca_chat_signup', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/volunteer_signup', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/speaker_signup', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/miniconf_org_signup', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/partners_programme_signup', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/speakers_partners', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/talks', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/zkpylons_sales', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/partners_programme', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/planet_lca', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/nonregistered', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/_keysigning_participants_list', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/admin/23/_keysigning_single', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/admin/23/_keysigning_conference', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/admin/23/_keysigning_participants', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/admin/23/rego_desk_list', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/previous_years_stats', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/people_by_country', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/speakers_by_country', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/people_by_state', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/favourite_distro', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/favourite_editor', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/favourite_shell', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/favourite_vcs', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/email_registration_reminder', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/late_submitters', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/rego_foreign', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/rego_list', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/_volunteer_grid', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/admin/23/paid_counts_by_date', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/paid_product_by_date', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/paid_ticket_by_date', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/paid_accom_by_date', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/av_norelease', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/av_technical_requirements', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/random_delegates', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/_random_delegates_excluded', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/admin/23/_destroy_personal_information', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/admin/23/lookup', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/generate_fulfilment', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/fulfilment_report', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/generate_boardingpass', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/generate_fulfilment_codes', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/generate_code', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/admin/23/_keysigning_pdf', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/admin/23/csv_response', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/admin/23/get_column_names', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/admin/23/sql_execute', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/admin/23/sql_response', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/admin/23/foo', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/admin/23/sql_data', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/admin/23/table_response', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/admin/23/table_csv_response', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/attachment/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/attachment/23/_delete', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/attachment/23/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/attachment/23/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/boardingpass/23/pdf', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/ceiling/23/validate_python', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/ceiling/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/ceiling/23/_new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/ceiling/23/_edit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/ceiling/23/_delete', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/ceiling/23/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/ceiling/23/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/ceiling/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/ceiling/23/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/ceiling/23/special_cases', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/ceiling/23/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/checkin/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/checkin/23/bio_list', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/checkin/23/get_talk', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/checkin/23/lookup', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/checkin/23/person_data', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/checkin/23/update_fulfilments', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/db_content/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/db_content/23/_new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/db_content/23/view', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/db_content/23/_edit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/db_content/23/_delete', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/db_content/23/rss_news', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/db_content/23/caseinsensitive_sort', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/db_content/23/parse_dbpage', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/db_content/23/delete_file', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/db_content/23/delete_folder', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/db_content/23/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/db_content/23/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/db_content/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/db_content/23/list_files', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/db_content/23/list_news', 'resp':[200,200,200,200,200,200,200,200,200,200,200]},
+ {'url':'/db_content/23/list_press', 'resp':[200,200,200,200,200,200,200,200,200,200,200]},
+ {'url':'/db_content/23/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/db_content/23/page', 'resp':[200,200,200,200,200,200,200,200,200,200,200]},
+ {'url':'/db_content/23/upload', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/error/23/document', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/error/23/img', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/error/23/style', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/error/23/_serve_file', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/event/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/event/23/_new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/event/23/_edit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/event/23/_delete', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/event/23/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/event/23/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/event/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/event/23/new_proposals', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/event/23/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/event/23/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/event_type/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/event_type/23/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/event_type/23/_new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/event_type/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/event_type/23/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/event_type/23/_edit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/event_type/23/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/event_type/23/_delete', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/fulfilment/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/fulfilment/23/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment/23/_new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/fulfilment/23/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment/23/person', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment/23/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment/23/_edit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/fulfilment/23/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment/23/_delete', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/fulfilment/23/_badge', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/fulfilment/23/badge_pdf', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment/23/badge_print', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment/23/swag_give', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_group/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/fulfilment_group/23/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_group/23/_new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/fulfilment_group/23/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_group/23/pdf', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_group/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_group/23/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_group/23/_edit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/fulfilment_group/23/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_group/23/_delete', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/fulfilment_status/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/fulfilment_status/23/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_status/23/_new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/fulfilment_status/23/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_status/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_status/23/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_status/23/_edit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/fulfilment_status/23/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_status/23/_delete', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/fulfilment_type/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/fulfilment_type/23/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_type/23/_new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/fulfilment_type/23/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_type/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_type/23/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_type/23/_edit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/fulfilment_type/23/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_type/23/_delete', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/funding/23/__init__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/funding/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/funding/23/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/funding/23/_new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/funding/23/attach', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/funding/23/_attach', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/funding/23/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/funding/23/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/funding/23/_edit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/funding/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/funding/23/approve', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/funding/23/_approve', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/funding/23/withdraw', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/funding/23/_withdraw', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/funding/23/_is_reviewer', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/funding/23/review', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/funding/23/_review', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/funding/23/review_index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/funding/23/summary', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/funding/23/_score_sort', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/funding/23/_review_avg_score', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/funding_attachment/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/funding_attachment/23/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/funding_attachment/23/_delete', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/funding_attachment/23/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/funding_review/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/funding_review/23/_is_reviewer', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/funding_review/23/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/funding_review/23/_edit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/funding_review/23/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/funding_review/23/_delete', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/funding_review/23/summary', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/funding_review/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/funding_review/23/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/funding_type/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/funding_type/23/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/funding_type/23/_new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/funding_type/23/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/funding_type/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/funding_type/23/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/funding_type/23/_edit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/funding_type/23/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/funding_type/23/_delete', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/home/23/index', 'resp':[200,200,200,200,200,200,200,200,200,200,200]},
+ {'url':'/invoice/23/_to_python', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/invoice/23/_from_python', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/invoice/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/invoice/23/product_list', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/invoice/23/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/invoice/23/_new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/invoice/23/generate_hash', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/invoice/23/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/invoice/23/printable', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/invoice/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/invoice/23/remind', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/invoice/23/_remind', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/invoice/23/_check_invoice', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/invoice/23/pay', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/invoice/23/get_invoice', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/invoice/23/pay_invoice', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/invoice/23/_pay', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/invoice/23/refund', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/invoice/23/pay_manual', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/invoice/23/pdf', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/invoice/23/void', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/invoice/23/unvoid', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/invoice/23/extend', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/location/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/location/23/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/location/23/_new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/location/23/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/location/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/location/23/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/location/23/_edit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/location/23/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/location/23/_delete', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/location/23/ical', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/map/23/index', 'resp':[200,200,200,200,200,200,200,200,200,200,200]},
+ {'url':'/miniconf_proposal/23/__init__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/miniconf_proposal/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/miniconf_proposal/23/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/miniconf_proposal/23/_new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/miniconf_proposal/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/not_found/23/view', 'resp':[200,200,200,200,200,200,200,200,200,200,200]},
+ {'url':'/payment/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/payment/23/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/payment/23/new', 'resp':[200,200,200,200,200,200,200,200,200,200,200]},
+ {'url':'/payment/23/new_manual', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/payment/23/_new_manual', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/person/23/validate_python', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/person/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/person/23/signin', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/person/23/finish_login', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/person/23/_redirect_user_optimally', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/person/23/_signin', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/person/23/persona_login', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/person/23/signout_confirm', 'resp':[302,302,302,302,302,302,302,302,302,302,302]},
+ {'url':'/person/23/signout', 'resp':[302,302,302,302,302,302,302,302,302,302,302]},
+ {'url':'/person/23/activate', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/person/23/confirm', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/person/23/forgotten_password', 'resp':[200,200,200,200,200,200,200,200,200,200,200]},
+ {'url':'/person/23/_forgotten_password', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/person/23/reset_password', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/person/23/_reset_password', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/person/23/finish_signup', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/person/23/_finish_signup', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/person/23/finish_edit', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/person/23/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/person/23/_edit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/person/23/reprint', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/person/23/new', 'resp':[200,200,200,200,200,200,200,200,200,200,200]},
+ {'url':'/person/23/_new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/person/23/new_incomplete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/person/23/_new_incomplete', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/person/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/person/23/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/person/23/roles', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/person/23/_roles', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/person/23/offer', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/person/23/_offer', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/photocomp/23/__init__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/photocomp/23/filename', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/photocomp/23/pathname', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/photocomp/23/write_orig', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/photocomp/23/write_scaled', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/photocomp/23/delete', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/photocomp/23/add', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/photocomp/23/get', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/photocomp/23/read_db', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/photocomp/23/from_filename', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/photocomp/23/get_db_dir', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/photocomp/23/__repr__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/photocomp/23/index', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/photocomp/23/photo_title', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/photocomp/23/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/photocomp/23/upload', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/photocomp/23/photo', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/product/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/product/23/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/product/23/_new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/product/23/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/product/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/product/23/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/product/23/_edit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/product/23/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/product/23/_delete', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/product/23/json', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/product_category/23/validate_python', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/product_category/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/product_category/23/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/product_category/23/_new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/product_category/23/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/product_category/23/stats', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/product_category/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/product_category/23/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/product_category/23/_edit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/product_category/23/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/product_category/23/_delete', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/proposal/23/__init__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/proposal/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/proposal/23/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal/23/_new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/proposal/23/review', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal/23/_review', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/proposal/23/attach', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal/23/_attach', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/proposal/23/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal/23/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal/23/_edit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/proposal/23/review_index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal/23/summary', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal/23/approve', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal/23/_approve', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/proposal/23/withdraw', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal/23/_withdraw', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/proposal/23/latex', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal/23/clean_abstract', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_status/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/proposal_status/23/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_status/23/_new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/proposal_status/23/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_status/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_status/23/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_status/23/_edit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/proposal_status/23/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_status/23/_delete', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/proposal_type/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/proposal_type/23/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_type/23/_new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/proposal_type/23/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_type/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_type/23/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_type/23/_edit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/proposal_type/23/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_type/23/_delete', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/registration/23/__init__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/registration/23/validate_python', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/registration/23/_able_to_edit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/registration/23/_product_available', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/registration/23/_generate_product_schema', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/registration/23/min_max_validator', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/23/is_speaker', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/23/is_miniconf_org', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/23/is_volunteer', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/23/is_role', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/23/is_same_person', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/23/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/23/_new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/registration/23/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/23/_edit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/registration/23/save_details', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/23/status', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/23/pay', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/23/check_invoices', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/23/manual_invoice', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/23/invoices_identical', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/23/_create_invoice', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/registration/23/apply_voucher', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/23/_export_list', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/registration/23/generate_badges', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/23/_registration_badge_data', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/registration/23/_sanitise_badge_field', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/registration/23/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/23/remind', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/23/professionals_latex', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/23/rego_desk_latex', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_note/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/rego_note/23/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_note/23/_new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/rego_note/23/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_note/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_note/23/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_note/23/_edit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/rego_note/23/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_note/23/_delete', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/rego_room/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/rego_room/23/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_room/23/_new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/rego_room/23/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_room/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_room/23/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_room/23/_edit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/rego_room/23/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_room/23/_delete', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/review/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/review/23/_is_reviewer', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/review/23/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/review/23/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/review/23/_delete', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/review/23/summary', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/review/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/review/23/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/role/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/role/23/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/role/23/_edit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/role/23/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/role/23/_new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/role/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/role/23/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/role/23/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/role/23/_delete', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/schedule/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/schedule/23/table', 'resp':[200,200,200,200,200,200,200,200,200,200,200]},
+ {'url':'/schedule/23/table_view', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/schedule/23/ical', 'resp':[200,200,200,200,200,200,200,200,200,200,200]},
+ {'url':'/schedule/23/json', 'resp':[200,200,200,200,200,200,200,200,200,200,200]},
+ {'url':'/schedule/23/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/schedule/23/_new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/schedule/23/view', 'resp':[302,302,302,302,302,302,302,302,302,302,302]},
+ {'url':'/schedule/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/schedule/23/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/schedule/23/_edit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/schedule/23/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/schedule/23/_delete', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/schedule/23/view_talk', 'resp':[200,200,200,200,200,200,200,200,200,200,200]},
+ {'url':'/secret_hash/23/lookup', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/secret_hash/23/transfer', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/social_network/23/validate_python', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/social_network/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/social_network/23/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/social_network/23/_new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/social_network/23/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/social_network/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/social_network/23/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/social_network/23/_edit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/social_network/23/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/social_network/23/_delete', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/special_offer/23/validate_python', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/special_offer/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/special_offer/23/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/special_offer/23/_new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/special_offer/23/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/special_offer/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/special_offer/23/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/special_offer/23/_edit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/special_offer/23/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/special_offer/23/_delete', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/stream/23/validate_python', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/stream/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/stream/23/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/stream/23/_new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/stream/23/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/stream/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/stream/23/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/stream/23/_edit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/stream/23/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/stream/23/_delete', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/time_slot/23/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/time_slot/23/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/time_slot/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/time_slot/23/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/time_slot/23/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/time_slot/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/time_slot/23/_new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/time_slot/23/_edit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/time_slot/23/_delete', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/travel/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/travel/23/_new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/travel/23/_edit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/travel/23/_delete', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/travel/23/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/travel/23/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/travel/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/travel/23/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/travel/23/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/uml_graph/23/dotmodel', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/volunteer/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/volunteer/23/_new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/volunteer/23/_edit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/volunteer/23/_accept', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/volunteer/23/accept', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/volunteer/23/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/volunteer/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/volunteer/23/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/volunteer/23/pending', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/volunteer/23/reject', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/volunteer/23/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/vote/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/vote/23/_new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/vote/23/_edit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/vote/23/_revoke', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/vote/23/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/vote/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/vote/23/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/vote/23/revoke', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/voucher/23/validate_python', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/voucher/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/voucher/23/_generate_product_schema', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/voucher/23/_new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/voucher/23/_delete', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/voucher/23/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/voucher/23/generate_code', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/voucher/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/voucher/23/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ ]
+
+entry_points = controller_entry_points + routing_entry_points + smart_routing_entry_points + controller_id_entry_points
+# TODO: db_content urls
+# Note we don't test special cases like if the user making the request matches the user details being requested
+# It is assumed that focussed tests will pick up those sort of special cases
+
+class TestPermissions(object):
+ def try_url(self,app,url):
+ try:
+ resp = app.get(url, status="*")
+ if resp.status_code == 200 and "Otherwise enter your credentials in the following form." in unicode(resp.body, 'utf-8'):
+ # Login page --> unauthorized 401 or 403 depending on if we are logged in
+ code = 401 if isSignedIn(app) else 403
+ else:
+ code = resp.status_code
+ except:
+ code = 500 # Exception --> internal server error
+ return code
+
+ def gen_table(self, app, db_session):
+ """ This function was used to generate a starting permission table.
+ Kept in case it becomes useful again.
+ """
+ #table = entry_points
+ table = controller_id_entry_points
+
+ people = []
+ for role in roles:
+ if role == 'public':
+ # No login
+ people.append(None)
+ elif role == 'none':
+ # Default, no special roles
+ people.append(CompletePersonFactory())
+ else:
+ # We have a role
+ role = RoleFactory(name=role)
+ people.append(CompletePersonFactory(roles=[role]))
+ db_session.commit()
+
+ for i in range(len(people)):
+ p = people[i]
+ if p:
+ do_login(app, p)
+ assert isSignedIn(app)
+ else:
+ app.get('/person/signout')
+ assert not isSignedIn(app)
+
+ for pt in table:
+ pt['resp'][i] = self.try_url(app,pt['url'])
+
+ for pt in table:
+ print "{'url':%-45s 'resp':%s}," % ("'"+pt['url']+"',", pt['resp'])
+
+ # Testing every role takes about 10 minutes on my box
+ # Using parametrize breaks it up into 10 tests, which is less scary when running them
+ # Particularly important as the travis framework is a bit slow and has a ten minute timeout
+ @pytest.mark.parametrize("role", roles)
+ def test_role(self, app, db_session, role):
+ if role == 'public':
+ # No login
+ app.get('/person/signout')
+ assert not isSignedIn(app)
+ else:
+ if role == 'none':
+ # Default, no special roles
+ p = CompletePersonFactory()
+ else:
+ # We have a role
+ r = RoleFactory(name=role)
+ p = CompletePersonFactory(roles=[r])
+ db_session.commit()
+ do_login(app, p)
+ assert isSignedIn(app), "Person with role %s could not sign in" % role
+
+ # entry_point expected return is an array which syncs up with the role positions
+ role_index = roles.index(role)
+
+ for pt in entry_points:
+ ret = self.try_url(app,pt['url'])
+ assert ret == pt['resp'][role_index], "%s for %s returned %s, expected %s" % (pt['url'], role, ret, pt['resp'][role_index])
+
+ # TODO: Add tests to ensure that these lists are up to data
+ # For example scan each controller file for functions, ensure each function is represented in the lists
+
+
From 237b4e43dd89884c790a87de24e8a2e0e279bcc1 Mon Sep 17 00:00:00 2001
From: David Tulloh
Date: Sat, 29 Aug 2015 17:18:42 +1000
Subject: [PATCH 23/23] Fixed issue with inadvertent logging out
Was hitting the logout page mid-test, invalidating half the results.
This also fixes the consistency issues I was having.
---
zkpylons/tests/functional/test_permissions.py | 1410 +++++++++--------
1 file changed, 748 insertions(+), 662 deletions(-)
diff --git a/zkpylons/tests/functional/test_permissions.py b/zkpylons/tests/functional/test_permissions.py
index 77bc4a1cb..d11af147e 100644
--- a/zkpylons/tests/functional/test_permissions.py
+++ b/zkpylons/tests/functional/test_permissions.py
@@ -1,6 +1,7 @@
import pytest
from .fixtures import CompletePersonFactory, RoleFactory
from .utils import do_login, isSignedIn
+import random
roles = ['public', 'none', # These first two aren't real roles
@@ -13,6 +14,7 @@
# grep "def " zkpylons/controllers/*.py | sed -r 's/.*\/([^/]+).py: *def *([^(]+).*/{"url":"\1\/\2", "resp":[200,200,200,200,200,200,200,200,200,200]},/' | awk '{printf "%-50s %s\n",$1,$2}'
# Hitting all these urls isn't sane, it isn't meant to be
# This test is designed to catch any accidental permission changes
+
controller_entry_points = [
{'url':'/admin/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/admin/index', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
@@ -299,35 +301,32 @@
{'url':'/person/validate_python', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
{'url':'/person/validate_python', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
{'url':'/person/__before__', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
- {'url':'/person/signin', 'resp':[403,302,302,302,302,302,302,302,302,302,302]},
- {'url':'/person/finish_login', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
{'url':'/person/_redirect_user_optimally', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
{'url':'/person/_signin', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
{'url':'/person/persona_login', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
{'url':'/person/signout_confirm', 'resp':[200,200,200,200,200,200,200,200,200,200,200]},
- {'url':'/person/signout', 'resp':[302,302,302,302,302,302,302,302,302,302,302]},
- {'url':'/person/activate', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
- {'url':'/person/confirm', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/person/activate', 'resp':[500,302,302,302,302,302,302,302,302,302,302]},
+ {'url':'/person/confirm', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
{'url':'/person/forgotten_password', 'resp':[200,200,200,200,200,200,200,200,200,200,200]},
- {'url':'/person/_forgotten_password', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/person/reset_password', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/person/_reset_password', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/person/finish_signup', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/person/_finish_signup', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/person/finish_edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/person/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/person/_edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/person/reprint', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/person/new', 'resp':[200,200,200,200,200,200,200,200,200,200,200]},
- {'url':'/person/_new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/person/new_incomplete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/person/_new_incomplete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/person/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/person/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/person/roles', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/person/_roles', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/person/offer', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/person/_offer', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/person/_forgotten_password', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/person/reset_password', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/person/_reset_password', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/person/finish_signup', 'resp':[403,200,200,200,200,200,200,200,200,200,200]},
+ {'url':'/person/_finish_signup', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/person/finish_edit', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/person/edit', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/person/_edit', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/person/reprint', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/person/new', 'resp':[200,302,302,302,302,302,302,302,302,302,302]},
+ {'url':'/person/_new', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/person/new_incomplete', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/person/_new_incomplete', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/person/index', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/person/view', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/person/roles', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/person/_roles', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/person/offer', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/person/_offer', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
{'url':'/photocomp/__init__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/photocomp/filename', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/photocomp/pathname', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
@@ -342,142 +341,142 @@
{'url':'/photocomp/__repr__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/photocomp/index', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/photocomp/photo_title', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/photocomp/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/photocomp/edit', 'resp':[403,302,302,302,302,302,302,302,302,302,302]},
{'url':'/photocomp/upload', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/photocomp/photo', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/product/__before__', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/product/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/product/_new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/product/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/product/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/product/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/product/_edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/product/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/product/_delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/product/json', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/product_category/validate_python', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/product_category/__before__', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/product_category/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/product_category/_new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/product_category/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/product_category/stats', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/product_category/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/product_category/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/product_category/_edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/product_category/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/product_category/_delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/proposal/__init__', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/proposal/__before__', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/proposal/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/proposal/_new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/proposal/review', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/proposal/_review', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/proposal/attach', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/proposal/_attach', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/proposal/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/proposal/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/proposal/_edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/proposal/review_index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/proposal/summary', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/proposal/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/proposal/approve', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/proposal/_approve', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/proposal/withdraw', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/proposal/_withdraw', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/proposal/latex', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/proposal/clean_abstract', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/proposal_status/__before__', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/proposal_status/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/proposal_status/_new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/proposal_status/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/proposal_status/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/proposal_status/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/proposal_status/_edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/proposal_status/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/proposal_status/_delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/proposal_type/__before__', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/proposal_type/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/proposal_type/_new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/proposal_type/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/proposal_type/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/proposal_type/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/proposal_type/_edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/proposal_type/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/proposal_type/_delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/registration/__init__', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/registration/validate_python', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/registration/__before__', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/registration/_able_to_edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/registration/_product_available', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/registration/_generate_product_schema', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/registration/min_max_validator', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/registration/is_speaker', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/registration/is_miniconf_org', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/registration/is_volunteer', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/registration/is_role', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/registration/is_same_person', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/registration/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/registration/_new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/registration/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/registration/_edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/registration/save_details', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/registration/status', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/registration/pay', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/registration/check_invoices', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/registration/manual_invoice', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/registration/invoices_identical', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/registration/_create_invoice', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/registration/apply_voucher', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/registration/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/registration/_export_list', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/registration/generate_badges', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/registration/_registration_badge_data', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/registration/_sanitise_badge_field', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/registration/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/registration/remind', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/registration/professionals_latex', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/registration/rego_desk_latex', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/rego_note/__before__', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/rego_note/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/rego_note/_new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/rego_note/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/rego_note/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/rego_note/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/rego_note/_edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/rego_note/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/rego_note/_delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/rego_room/__before__', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/rego_room/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/rego_room/_new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/rego_room/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/rego_room/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/rego_room/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/rego_room/_edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/rego_room/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/rego_room/_delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/review/__before__', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/review/_is_reviewer', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/review/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/review/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/review/_delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/review/summary', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/review/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/review/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/role/__before__', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/role/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/role/_edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/role/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/role/_new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/role/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/role/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/role/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/role/_delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/product/__before__', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/product/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/product/_new', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/product/view', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/product/index', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/product/edit', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/product/_edit', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/product/delete', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/product/_delete', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/product/json', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/product_category/validate_python', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/product_category/__before__', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/product_category/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/product_category/_new', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/product_category/view', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/product_category/stats', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/product_category/index', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/product_category/edit', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/product_category/_edit', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/product_category/delete', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/product_category/_delete', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal/__init__', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/proposal/__before__', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/proposal/new', 'resp':[403,200,200,200,200,200,200,200,200,200,200]},
+ {'url':'/proposal/_new', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/proposal/review', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/proposal/_review', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/proposal/attach', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/proposal/_attach', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/proposal/view', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/proposal/edit', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/proposal/_edit', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/proposal/review_index', 'resp':[403,403,403,403,200,403,403,403,403,403,403]},
+ {'url':'/proposal/summary', 'resp':[403,403,403,403,200,403,403,403,403,403,403]},
+ {'url':'/proposal/index', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/proposal/approve', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal/_approve', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/proposal/withdraw', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/proposal/_withdraw', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/proposal/latex', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal/clean_abstract', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/proposal_status/__before__', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_status/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_status/_new', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_status/view', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_status/index', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_status/edit', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_status/_edit', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_status/delete', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_status/_delete', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_type/__before__', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_type/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_type/_new', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_type/view', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_type/index', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_type/edit', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_type/_edit', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_type/delete', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_type/_delete', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/__init__', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/registration/validate_python', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/registration/__before__', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/registration/_able_to_edit', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/registration/_product_available', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/registration/_generate_product_schema', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/registration/min_max_validator', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/registration/is_speaker', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/registration/is_miniconf_org', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/registration/is_volunteer', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/registration/is_role', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/registration/is_same_person', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/registration/new', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/registration/_new', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/registration/edit', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/registration/_edit', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/registration/save_details', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/registration/status', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/registration/pay', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/registration/check_invoices', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/registration/manual_invoice', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/registration/invoices_identical', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/registration/_create_invoice', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/registration/apply_voucher', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/registration/index', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/registration/_export_list', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/registration/generate_badges', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/_registration_badge_data', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/registration/_sanitise_badge_field', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/registration/view', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/registration/remind', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/professionals_latex', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/rego_desk_latex', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/rego_note/__before__', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_note/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_note/_new', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_note/view', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_note/index', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_note/edit', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_note/_edit', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_note/delete', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_note/_delete', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_room/__before__', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_room/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_room/_new', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_room/view', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_room/index', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_room/edit', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_room/_edit', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_room/delete', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_room/_delete', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/review/__before__', 'resp':[403,403,403,403,500,403,403,403,403,403,403]},
+ {'url':'/review/_is_reviewer', 'resp':[403,403,403,403,500,403,403,403,403,403,403]},
+ {'url':'/review/edit', 'resp':[403,403,403,403,500,403,403,403,403,403,403]},
+ {'url':'/review/delete', 'resp':[403,403,403,403,500,403,403,403,403,403,403]},
+ {'url':'/review/_delete', 'resp':[403,403,403,403,500,403,403,403,403,403,403]},
+ {'url':'/review/summary', 'resp':[403,403,403,403,200,403,403,403,403,403,403]},
+ {'url':'/review/index', 'resp':[403,403,403,403,500,403,403,403,403,403,403]},
+ {'url':'/review/view', 'resp':[403,403,403,403,500,403,403,403,403,403,403]},
+ {'url':'/role/__before__', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/role/edit', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/role/_edit', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/role/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/role/_new', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/role/index', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/role/view', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/role/delete', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/role/_delete', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
{'url':'/schedule/__before__', 'resp':[302,302,302,302,302,302,302,302,302,302,302]},
{'url':'/schedule/table', 'resp':[302,302,302,302,302,302,302,302,302,302,302]},
{'url':'/schedule/table_view', 'resp':[302,302,302,302,302,302,302,302,302,302,302]},
{'url':'/schedule/ical', 'resp':[302,302,302,302,302,302,302,302,302,302,302]},
{'url':'/schedule/json', 'resp':[302,302,302,302,302,302,302,302,302,302,302]},
- {'url':'/schedule/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/schedule/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
{'url':'/schedule/_new', 'resp':[302,302,302,302,302,302,302,302,302,302,302]},
{'url':'/schedule/view', 'resp':[302,302,302,302,302,302,302,302,302,302,302]},
{'url':'/schedule/index', 'resp':[302,302,302,302,302,302,302,302,302,302,302]},
@@ -488,45 +487,45 @@
{'url':'/schedule/view_talk', 'resp':[302,302,302,302,302,302,302,302,302,302,302]},
{'url':'/secret_hash/lookup', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/secret_hash/transfer', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/social_network/validate_python', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/social_network/__before__', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/social_network/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/social_network/_new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/social_network/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/social_network/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/social_network/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/social_network/_edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/social_network/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/social_network/_delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/special_offer/validate_python', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/special_offer/__before__', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/special_offer/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/special_offer/_new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/special_offer/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/special_offer/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/special_offer/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/special_offer/_edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/special_offer/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/special_offer/_delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/stream/validate_python', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/stream/__before__', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/stream/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/stream/_new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/stream/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/stream/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/stream/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/stream/_edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/stream/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/stream/_delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/time_slot/__before__', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/time_slot/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/time_slot/_new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/time_slot/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/time_slot/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/time_slot/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/time_slot/_edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/time_slot/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/time_slot/_delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/social_network/validate_python', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/social_network/__before__', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/social_network/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/social_network/_new', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/social_network/view', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/social_network/index', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/social_network/edit', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/social_network/_edit', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/social_network/delete', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/social_network/_delete', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/special_offer/validate_python', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/special_offer/__before__', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/special_offer/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/special_offer/_new', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/special_offer/view', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/special_offer/index', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/special_offer/edit', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/special_offer/_edit', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/special_offer/delete', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/special_offer/_delete', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/stream/validate_python', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/stream/__before__', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/stream/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/stream/_new', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/stream/view', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/stream/index', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/stream/edit', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/stream/_edit', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/stream/delete', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/stream/_delete', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/time_slot/__before__', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/time_slot/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/time_slot/_new', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/time_slot/view', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/time_slot/index', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/time_slot/edit', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/time_slot/_edit', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/time_slot/delete', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/time_slot/_delete', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
{'url':'/travel/__before__', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
{'url':'/travel/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
{'url':'/travel/_new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
@@ -537,35 +536,40 @@
{'url':'/travel/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
{'url':'/travel/_delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
{'url':'/uml_graph/dotmodel', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/volunteer/__before__', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/volunteer/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/volunteer/_new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/volunteer/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/volunteer/_edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/volunteer/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/volunteer/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/volunteer/accept', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/volunteer/_accept', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/volunteer/pending', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/volunteer/reject', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/vote/__before__', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/vote/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/vote/_new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/vote/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/vote/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/vote/_edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/vote/revoke', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/vote/_revoke', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/voucher/generate_code', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/voucher/validate_python', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/voucher/__before__', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/voucher/_generate_product_schema', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/voucher/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/voucher/_new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/voucher/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/voucher/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/voucher/_delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]}
-]
+ {'url':'/volunteer/__before__', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/volunteer/new', 'resp':[403,200,200,200,200,200,200,200,200,200,200]},
+ {'url':'/volunteer/_new', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/volunteer/edit', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/volunteer/_edit', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/volunteer/view', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/volunteer/index', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/volunteer/accept', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/volunteer/_accept', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/volunteer/pending', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/volunteer/reject', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/vote/__before__', 'resp':[403,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/vote/new', 'resp':[403,200,200,200,200,200,200,200,200,200,200]},
+ {'url':'/vote/_new', 'resp':[403,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/vote/index', 'resp':[403,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/vote/edit', 'resp':[403,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/vote/_edit', 'resp':[403,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/vote/revoke', 'resp':[403,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/vote/_revoke', 'resp':[403,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/voucher/generate_code', 'resp':[403,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/voucher/validate_python', 'resp':[403,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/voucher/__before__', 'resp':[403,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/voucher/_generate_product_schema', 'resp':[403,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/voucher/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/voucher/_new', 'resp':[403,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/voucher/index', 'resp':[403,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/voucher/delete', 'resp':[403,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/voucher/_delete', 'resp':[403,404,404,404,404,404,404,404,404,404,404]}
+ # Don't hit - has side effects
+ #{'url':'/person/signout', 'resp':[302,302,302,302,302,302,302,302,302,302,302]},
+ # Might have side effects
+ #{'url':'/person/finish_login', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ #{'url':'/person/signin', 'resp':[403,401,302,401,401,401,401,401,401,401,401]},
+ ]
# Generated from zkpylons/config/routing.py by hand with scripting help
# Where parameters were required 23 has been used, shouldn't exist but that isn't what we are checking for
@@ -577,10 +581,10 @@
{'url':'/media/in_the_press', 'resp':[200,200,200,200,200,200,200,200,200,200,200]},
{'url':'/about/map', 'resp':[200,200,200,200,200,200,200,200,200,200,200]},
{'url':'/brisbane/map', 'resp':[200,200,200,200,200,200,200,200,200,200,200]},
- {'url':'/db_content/list_files', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/db_content/delete_file', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/db_content/delete_folder', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/db_content/upload', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/db_content/list_files', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/db_content/delete_file', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/db_content/delete_folder', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/db_content/upload', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
{'url':'/programme/schedule', 'resp':[200,200,200,200,200,200,200,200,200,200,200]},
{'url':'/programme/schedule/ical', 'resp':[200,200,200,200,200,200,200,200,200,200,200]},
{'url':'/programme/schedule/json', 'resp':[200,200,200,200,200,200,200,200,200,200,200]},
@@ -588,47 +592,41 @@
{'url':'/programme/schedule/view_talk/23', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/programme/schedule/video', 'resp':[200,200,200,200,200,200,200,200,200,200,200]},
{'url':'/programme/schedule/video/23', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/event/new_proposals', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/programme/submit_a_miniconf', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/programme/submit_a_proposal', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/proposal/review_index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/proposal/summary', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/proposal/approve', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/review/summary', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/funding/review_index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/funding/summary', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/funding/approve', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/funding_review/summary', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/invoice/23/pdf', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/invoice/remind', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/invoice/save_new_invoice', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/invoice/product_list', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/registration/remind', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/register/status', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/registration/silly_description', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/registration/generate_badges', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/invoice/generate_hash/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/event/new_proposals', 'resp':[403,403,302,403,403,403,403,403,403,403,403]},
+ {'url':'/programme/submit_a_miniconf', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/programme/submit_a_proposal', 'resp':[403,200,200,200,200,200,200,200,200,200,200]},
+ {'url':'/proposal/review_index', 'resp':[403,403,403,403,200,403,403,403,403,403,403]},
+ {'url':'/proposal/summary', 'resp':[403,403,403,403,200,403,403,403,403,403,403]},
+ {'url':'/proposal/approve', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/review/summary', 'resp':[403,403,403,403,200,403,403,403,403,403,403]},
+ {'url':'/funding/review_index', 'resp':[403,403,403,403,403,403,403,403,200,403,403]},
+ {'url':'/funding/summary', 'resp':[403,403,403,403,403,403,403,403,200,403,403]},
+ {'url':'/funding/approve', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/funding_review/summary', 'resp':[403,403,403,403,403,403,403,403,200,403,403]},
+ {'url':'/invoice/23/pdf', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/invoice/remind', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/invoice/save_new_invoice', 'resp':[403,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/invoice/product_list', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/remind', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/register/status', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/registration/silly_description', 'resp':[403,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/registration/generate_badges', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/invoice/generate_hash/23', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
{'url':'/secret/23', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/person/confirm/23', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- # TODO: This is the second iteration of /person/signin and results differ to the first
- # I have no idea why the results have changed
- # More worryingly other results may have also changed, there are some
- # indications when generating the tests that results were changing based on prior lines.
- {'url':'/person/signin', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/person/signout', 'resp':[302,302,302,302,302,302,302,302,302,302,302]},
{'url':'/person/signout_confirm', 'resp':[200,200,200,200,200,200,200,200,200,200,200]},
{'url':'/person/forgotten_password', 'resp':[200,200,200,200,200,200,200,200,200,200,200]},
{'url':'/person/reset_password/23', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
{'url':'/person/persona_login', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
- {'url':'/person/finish_signup', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/person/new_incomplete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/person/activate', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
- {'url':'/registration/professionals_latex', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/proposal/latex', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/product/new/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/product/json', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/registration/23/new_note', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/photocomp/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/person/finish_signup', 'resp':[403,200,200,200,200,200,200,200,200,200,200]},
+ {'url':'/person/new_incomplete', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/person/activate', 'resp':[500,302,302,302,302,302,302,302,302,302,302]},
+ {'url':'/registration/professionals_latex', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal/latex', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/product/new/23', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/product/json', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/23/new_note', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/photocomp/edit', 'resp':[403,302,302,302,302,302,302,302,302,302,302]},
{'url':'/photocomp/', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
{'url':'/photocomp/photo/23', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
{'url':'/uml_graph.png', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
@@ -638,235 +636,240 @@
{'url':'/uml_graph.dot', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
{'url':'/boardingpass/23', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
{'url':'/db_content/view', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
+ # Don't hit - has side effects
+ #{'url':'/person/signout', 'resp':[302,302,302,302,302,302,302,302,302,302,302]},
+ # Might have side effects
+ #{'url':'/person/signin', 'resp':[403,302,401,401,401,401,401,401,401,401,401]},
]
# A combination of the routing rules and a list of all controllers
# Covers {controller}, {controller}/new, {controller}/new_submit, {controller}/{id}
# Doesn't cover {controller}/{id}/{action}
+
smart_routing_entry_points = [
{'url':'/admin/new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/admin/new_submit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/admin/23', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/attachment/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/attachment/new_submit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/attachment/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/attachment/new', 'resp':[403,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/attachment/new_submit', 'resp':[403,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/attachment/23', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
{'url':'/boardingpass/new', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
{'url':'/boardingpass/new_submit', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
{'url':'/boardingpass/23', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
- {'url':'/ceiling/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/ceiling/new_submit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/ceiling/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/checkin/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/checkin/new_submit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/checkin/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/db_content/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/ceiling/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/ceiling/new_submit', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/ceiling/23', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/checkin/new', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/checkin/new_submit', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/checkin/23', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/db_content/new', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
{'url':'/db_content/new_submit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/db_content/23', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/error/new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/error/new_submit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/error/23', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/event/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/event/new_submit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/event/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/event_type/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/event_type/new_submit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/event_type/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/fulfilment_group/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/fulfilment_group/new_submit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/fulfilment_group/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/fulfilment/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/event/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/event/new_submit', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/event/23', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/event_type/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/event_type/new_submit', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/event_type/23', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_group/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_group/new_submit', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_group/23', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
{'url':'/fulfilment/new_submit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/fulfilment/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/fulfilment_status/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/fulfilment_status/new_submit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/fulfilment_status/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/fulfilment_type/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/fulfilment_type/new_submit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/fulfilment_type/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/funding_attachment/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/funding_attachment/new_submit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/funding_attachment/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/funding/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/funding/new_submit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/funding/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/funding_review/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/funding_review/new_submit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/funding_review/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/funding_type/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/funding_type/new_submit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/funding_type/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment/23', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_status/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_status/new_submit', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_status/23', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_type/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_type/new_submit', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_type/23', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/funding_attachment/new', 'resp':[403,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/funding_attachment/new_submit', 'resp':[403,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/funding_attachment/23', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/funding/new', 'resp':[403,200,200,200,200,200,200,200,200,200,200]},
+ {'url':'/funding/new_submit', 'resp':[403,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/funding/23', 'resp':[403,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/funding_review/new', 'resp':[403,403,403,403,403,403,403,403,404,403,403]},
+ {'url':'/funding_review/new_submit', 'resp':[403,403,403,403,403,403,403,403,404,403,403]},
+ {'url':'/funding_review/23', 'resp':[403,403,403,403,403,403,403,403,302,403,403]},
+ {'url':'/funding_type/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/funding_type/new_submit', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/funding_type/23', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
{'url':'/home/new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/home/new_submit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/home/23', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/invoice/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/invoice/new_submit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/invoice/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/location/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/invoice/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/invoice/new_submit', 'resp':[403,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/invoice/23', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/location/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
{'url':'/location/new_submit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/location/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/location/23', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
{'url':'/map/new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/map/new_submit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/map/23', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/miniconf_proposal/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/miniconf_proposal/new_submit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/miniconf_proposal/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/miniconf_proposal/new', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/miniconf_proposal/new_submit', 'resp':[403,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/miniconf_proposal/23', 'resp':[403,404,404,404,404,404,404,404,404,404,404]},
{'url':'/not_found/new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/not_found/new_submit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/not_found/23', 'resp':[200,200,200,200,200,200,200,200,200,200,200]},
{'url':'/payment/new', 'resp':[200,200,200,200,200,200,200,200,200,200,200]},
{'url':'/payment/new_submit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/payment/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/person/new', 'resp':[200,200,200,200,200,200,200,200,200,200,200]},
+ {'url':'/payment/23', 'resp':[403,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/person/new', 'resp':[200,302,302,302,302,302,302,302,302,302,302]},
{'url':'/person/new_submit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/person/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/person/23', 'resp':[403,403,404,403,404,403,403,403,403,403,403]},
{'url':'/photocomp/new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/photocomp/new_submit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/photocomp/23', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/product_category/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/product_category/new_submit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/product_category/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/product/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/product_category/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/product_category/new_submit', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/product_category/23', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/product/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
{'url':'/product/new_submit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/product/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/proposal/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/proposal/new_submit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/proposal/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/proposal_status/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/proposal_status/new_submit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/proposal_status/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/proposal_type/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/proposal_type/new_submit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/proposal_type/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/registration/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/registration/new_submit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/registration/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/rego_note/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/rego_note/new_submit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/rego_note/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/rego_room/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/rego_room/new_submit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/rego_room/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/review/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/review/new_submit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/review/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/role/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/role/new_submit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/role/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/schedule/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/product/23', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal/new', 'resp':[403,200,200,200,200,200,200,200,200,200,200]},
+ {'url':'/proposal/new_submit', 'resp':[403,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/proposal/23', 'resp':[403,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/proposal_status/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_status/new_submit', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_status/23', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_type/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_type/new_submit', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_type/23', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/new', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/registration/new_submit', 'resp':[403,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/registration/23', 'resp':[403,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/rego_note/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_note/new_submit', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_note/23', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_room/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_room/new_submit', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_room/23', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/review/new', 'resp':[403,403,403,403,404,403,403,403,403,403,403]},
+ {'url':'/review/new_submit', 'resp':[403,403,403,403,404,403,403,403,403,403,403]},
+ {'url':'/review/23', 'resp':[403,403,403,403,302,403,403,403,403,403,403]},
+ {'url':'/role/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/role/new_submit', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/role/23', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/schedule/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
{'url':'/schedule/new_submit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/schedule/23', 'resp':[302,302,302,302,302,302,302,302,302,302,302]},
{'url':'/secret_hash/new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/secret_hash/new_submit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/secret_hash/23', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/social_network/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/social_network/new_submit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/social_network/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/special_offer/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/special_offer/new_submit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/special_offer/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/stream/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/stream/new_submit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/stream/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/time_slot/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/time_slot/new_submit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/time_slot/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/social_network/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/social_network/new_submit', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/social_network/23', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/special_offer/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/special_offer/new_submit', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/special_offer/23', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/stream/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/stream/new_submit', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/stream/23', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/time_slot/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/time_slot/new_submit', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/time_slot/23', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
{'url':'/travel/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
{'url':'/travel/new_submit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
{'url':'/travel/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
{'url':'/uml_graph/new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/uml_graph/new_submit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/uml_graph/23', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/volunteer/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/volunteer/new_submit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/volunteer/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/vote/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/vote/new_submit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/vote/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/voucher/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/voucher/new_submit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/voucher/23', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/volunteer/new', 'resp':[403,200,200,200,200,200,200,200,200,200,200]},
+ {'url':'/volunteer/new_submit', 'resp':[403,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/volunteer/23', 'resp':[403,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/vote/new', 'resp':[403,200,200,200,200,200,200,200,200,200,200]},
+ {'url':'/vote/new_submit', 'resp':[403,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/vote/23', 'resp':[403,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/voucher/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/voucher/new_submit', 'resp':[403,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/voucher/23', 'resp':[403,404,404,404,404,404,404,404,404,404,404]},
]
# Each url is /{controller}/{id}/{action} : where id = 23, the other two are pulled from a grep of each file
controller_id_entry_points = [
{'url':'/admin/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/admin/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/admin/23/rej_proposals_abstracts', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/index', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/rej_proposals_abstracts', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
{'url':'/admin/23/_collect_garbage', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/admin/23/_known_objects', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/admin/23/list_attachments', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/admin/23/auth_users', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/admin/23/proposal_list', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/admin/23/miniconf_list', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/admin/23/proposals_by_strong_rank', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/admin/23/proposals_by_max_rank', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/admin/23/proposals_by_stream', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/admin/23/proposals_by_number_of_reviewers', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/admin/23/proposals_by_date', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/admin/23/funding_requests_by_strong_rank', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/admin/23/funding_requests_by_max_rank', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/list_attachments', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/auth_users', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/proposal_list', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/miniconf_list', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/proposals_by_strong_rank', 'resp':[403,403,403,403,200,403,403,403,403,403,403]},
+ {'url':'/admin/23/proposals_by_max_rank', 'resp':[403,403,403,403,200,403,403,403,403,403,403]},
+ {'url':'/admin/23/proposals_by_stream', 'resp':[403,403,403,403,200,403,403,403,403,403,403]},
+ {'url':'/admin/23/proposals_by_number_of_reviewers', 'resp':[403,403,403,403,200,403,403,403,403,403,403]},
+ {'url':'/admin/23/proposals_by_date', 'resp':[403,403,403,403,200,403,403,403,403,403,403]},
+ {'url':'/admin/23/funding_requests_by_strong_rank', 'resp':[403,403,403,403,403,403,403,403,200,403,403]},
+ {'url':'/admin/23/funding_requests_by_max_rank', 'resp':[403,403,403,403,403,403,403,403,200,403,403]},
{'url':'/admin/23/_countdown', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/admin/23/change_config', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/admin/23/config', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/change_config', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/config', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
{'url':'/admin/23/_get_config', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/admin/23/_put_config', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/admin/23/silly_description_checksum', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/admin/23/registered_followup', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/admin/23/registered_speakers', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/silly_description_checksum', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/registered_followup', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/registered_speakers', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
{'url':'/admin/23/my_cmp', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/admin/23/registered_volunteers', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/registered_volunteers', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
{'url':'/admin/23/my_cmp', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/admin/23/registered_parking', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/admin/23/registered_accommodation', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/admin/23/registered_without_accom', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/admin/23/registered_bagdrop', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/admin/23/registered_prestuff', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/admin/23/reconcile', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/admin/23/linux_australia_signup', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/admin/23/lca_announce_signup', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/admin/23/lca_chat_signup', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/admin/23/volunteer_signup', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/admin/23/speaker_signup', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/admin/23/miniconf_org_signup', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/admin/23/partners_programme_signup', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/admin/23/speakers_partners', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/admin/23/talks', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/admin/23/zkpylons_sales', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/admin/23/partners_programme', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/admin/23/planet_lca', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/admin/23/nonregistered', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/registered_parking', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/registered_accommodation', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/registered_without_accom', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/registered_bagdrop', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/registered_prestuff', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/reconcile', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/linux_australia_signup', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/lca_announce_signup', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/lca_chat_signup', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/volunteer_signup', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/speaker_signup', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/miniconf_org_signup', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/partners_programme_signup', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/speakers_partners', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/talks', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/zkpylons_sales', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/partners_programme', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/planet_lca', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/nonregistered', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
{'url':'/admin/23/_keysigning_participants_list', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/admin/23/_keysigning_single', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/admin/23/_keysigning_conference', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/admin/23/_keysigning_participants', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/admin/23/rego_desk_list', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/admin/23/previous_years_stats', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/admin/23/people_by_country', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/admin/23/speakers_by_country', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/admin/23/people_by_state', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/admin/23/favourite_distro', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/admin/23/favourite_editor', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/admin/23/favourite_shell', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/admin/23/favourite_vcs', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/admin/23/email_registration_reminder', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/admin/23/late_submitters', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/admin/23/rego_foreign', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/admin/23/rego_list', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/rego_desk_list', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/previous_years_stats', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/people_by_country', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/speakers_by_country', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/people_by_state', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/favourite_distro', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/favourite_editor', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/favourite_shell', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/favourite_vcs', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/email_registration_reminder', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/late_submitters', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/rego_foreign', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/rego_list', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
{'url':'/admin/23/_volunteer_grid', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/admin/23/paid_counts_by_date', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/admin/23/paid_product_by_date', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/admin/23/paid_ticket_by_date', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/admin/23/paid_accom_by_date', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/admin/23/av_norelease', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/admin/23/av_technical_requirements', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/admin/23/random_delegates', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/paid_counts_by_date', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/paid_product_by_date', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/paid_ticket_by_date', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/paid_accom_by_date', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/av_norelease', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/av_technical_requirements', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/random_delegates', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
{'url':'/admin/23/_random_delegates_excluded', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/admin/23/_destroy_personal_information', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/admin/23/lookup', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/admin/23/generate_fulfilment', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/admin/23/fulfilment_report', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/admin/23/generate_boardingpass', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/admin/23/generate_fulfilment_codes', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/lookup', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/generate_fulfilment', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/fulfilment_report', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/generate_boardingpass', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/admin/23/generate_fulfilment_codes', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
{'url':'/admin/23/generate_code', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/admin/23/_keysigning_pdf', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/admin/23/csv_response', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
@@ -879,26 +882,26 @@
{'url':'/admin/23/table_csv_response', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/attachment/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/attachment/23/_delete', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/attachment/23/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/attachment/23/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/attachment/23/delete', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/attachment/23/view', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
{'url':'/boardingpass/23/pdf', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
- {'url':'/ceiling/23/validate_python', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/ceiling/23/validate_python', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
{'url':'/ceiling/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/ceiling/23/_new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/ceiling/23/_edit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/ceiling/23/_delete', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/ceiling/23/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/ceiling/23/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/ceiling/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/ceiling/23/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/ceiling/23/special_cases', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/ceiling/23/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/ceiling/23/delete', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/ceiling/23/edit', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/ceiling/23/index', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/ceiling/23/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/ceiling/23/special_cases', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/ceiling/23/view', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
{'url':'/checkin/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/checkin/23/bio_list', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/checkin/23/get_talk', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/checkin/23/lookup', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/checkin/23/person_data', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/checkin/23/update_fulfilments', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/checkin/23/bio_list', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/checkin/23/get_talk', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/checkin/23/lookup', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/checkin/23/person_data', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/checkin/23/update_fulfilments', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
{'url':'/db_content/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/db_content/23/_new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/db_content/23/view', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
@@ -907,17 +910,17 @@
{'url':'/db_content/23/rss_news', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/db_content/23/caseinsensitive_sort', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/db_content/23/parse_dbpage', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
- {'url':'/db_content/23/delete_file', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/db_content/23/delete_folder', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/db_content/23/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/db_content/23/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/db_content/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/db_content/23/list_files', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/db_content/23/delete_file', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/db_content/23/delete_folder', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/db_content/23/delete', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/db_content/23/edit', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/db_content/23/index', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/db_content/23/list_files', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
{'url':'/db_content/23/list_news', 'resp':[200,200,200,200,200,200,200,200,200,200,200]},
{'url':'/db_content/23/list_press', 'resp':[200,200,200,200,200,200,200,200,200,200,200]},
- {'url':'/db_content/23/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/db_content/23/new', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
{'url':'/db_content/23/page', 'resp':[200,200,200,200,200,200,200,200,200,200,200]},
- {'url':'/db_content/23/upload', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/db_content/23/upload', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
{'url':'/error/23/document', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/error/23/img', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/error/23/style', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
@@ -926,181 +929,178 @@
{'url':'/event/23/_new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/event/23/_edit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/event/23/_delete', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/event/23/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/event/23/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/event/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/event/23/new_proposals', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/event/23/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/event/23/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/event/23/delete', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/event/23/edit', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/event/23/index', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/event/23/new_proposals', 'resp':[403,403,302,403,403,403,403,403,403,403,403]},
+ {'url':'/event/23/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/event/23/view', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
{'url':'/event_type/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/event_type/23/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/event_type/23/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
{'url':'/event_type/23/_new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/event_type/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/event_type/23/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/event_type/23/index', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/event_type/23/edit', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
{'url':'/event_type/23/_edit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/event_type/23/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/event_type/23/delete', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
{'url':'/event_type/23/_delete', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/fulfilment/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/fulfilment/23/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment/23/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
{'url':'/fulfilment/23/_new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/fulfilment/23/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/fulfilment/23/person', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/fulfilment/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/fulfilment/23/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment/23/view', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment/23/person', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment/23/index', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment/23/edit', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
{'url':'/fulfilment/23/_edit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/fulfilment/23/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment/23/delete', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
{'url':'/fulfilment/23/_delete', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/fulfilment/23/_badge', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/fulfilment/23/badge_pdf', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
{'url':'/fulfilment/23/badge_print', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
{'url':'/fulfilment/23/swag_give', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
{'url':'/fulfilment_group/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/fulfilment_group/23/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_group/23/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
{'url':'/fulfilment_group/23/_new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/fulfilment_group/23/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/fulfilment_group/23/pdf', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/fulfilment_group/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/fulfilment_group/23/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_group/23/view', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_group/23/pdf', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_group/23/index', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_group/23/edit', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
{'url':'/fulfilment_group/23/_edit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/fulfilment_group/23/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_group/23/delete', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
{'url':'/fulfilment_group/23/_delete', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/fulfilment_status/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/fulfilment_status/23/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_status/23/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
{'url':'/fulfilment_status/23/_new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/fulfilment_status/23/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/fulfilment_status/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/fulfilment_status/23/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_status/23/view', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_status/23/index', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_status/23/edit', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
{'url':'/fulfilment_status/23/_edit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/fulfilment_status/23/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_status/23/delete', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
{'url':'/fulfilment_status/23/_delete', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/fulfilment_type/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/fulfilment_type/23/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_type/23/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
{'url':'/fulfilment_type/23/_new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/fulfilment_type/23/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/fulfilment_type/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/fulfilment_type/23/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_type/23/view', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_type/23/index', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_type/23/edit', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
{'url':'/fulfilment_type/23/_edit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/fulfilment_type/23/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/fulfilment_type/23/delete', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
{'url':'/fulfilment_type/23/_delete', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/funding/23/__init__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/funding/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/funding/23/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/funding/23/new', 'resp':[403,200,200,200,200,200,200,200,200,200,200]},
{'url':'/funding/23/_new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/funding/23/attach', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/funding/23/attach', 'resp':[403,200,200,200,200,200,200,200,200,200,200]},
{'url':'/funding/23/_attach', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/funding/23/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/funding/23/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/funding/23/view', 'resp':[403,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/funding/23/edit', 'resp':[403,404,404,404,404,404,404,404,404,404,404]},
{'url':'/funding/23/_edit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/funding/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/funding/23/approve', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/funding/23/index', 'resp':[403,200,200,200,200,200,200,200,200,200,200]},
+ {'url':'/funding/23/approve', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
{'url':'/funding/23/_approve', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/funding/23/withdraw', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/funding/23/withdraw', 'resp':[403,404,404,404,404,404,404,404,404,404,404]},
{'url':'/funding/23/_withdraw', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/funding/23/_is_reviewer', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/funding/23/review', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/funding/23/review', 'resp':[403,403,403,403,403,403,403,403,404,403,403]},
{'url':'/funding/23/_review', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/funding/23/review_index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/funding/23/summary', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/funding/23/review_index', 'resp':[403,403,403,403,403,403,403,403,200,403,403]},
+ {'url':'/funding/23/summary', 'resp':[403,403,403,403,403,403,403,403,200,403,403]},
{'url':'/funding/23/_score_sort', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/funding/23/_review_avg_score', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/funding_attachment/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/funding_attachment/23/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/funding_attachment/23/delete', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
{'url':'/funding_attachment/23/_delete', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/funding_attachment/23/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/funding_attachment/23/view', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
{'url':'/funding_review/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/funding_review/23/_is_reviewer', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/funding_review/23/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/funding_review/23/edit', 'resp':[403,403,403,403,403,403,403,403,500,403,403]},
{'url':'/funding_review/23/_edit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/funding_review/23/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/funding_review/23/delete', 'resp':[403,403,403,403,403,403,403,403,500,403,403]},
{'url':'/funding_review/23/_delete', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/funding_review/23/summary', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/funding_review/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/funding_review/23/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/funding_review/23/summary', 'resp':[403,403,403,403,403,403,403,403,200,403,403]},
+ {'url':'/funding_review/23/index', 'resp':[403,403,403,403,403,403,403,403,200,403,403]},
+ {'url':'/funding_review/23/view', 'resp':[403,403,403,403,403,403,403,403,302,403,403]},
{'url':'/funding_type/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/funding_type/23/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/funding_type/23/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
{'url':'/funding_type/23/_new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/funding_type/23/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/funding_type/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/funding_type/23/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/funding_type/23/view', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/funding_type/23/index', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/funding_type/23/edit', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
{'url':'/funding_type/23/_edit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/funding_type/23/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/funding_type/23/delete', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
{'url':'/funding_type/23/_delete', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/home/23/index', 'resp':[200,200,200,200,200,200,200,200,200,200,200]},
{'url':'/invoice/23/_to_python', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/invoice/23/_from_python', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/invoice/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/invoice/23/product_list', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/invoice/23/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/invoice/23/product_list', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/invoice/23/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
{'url':'/invoice/23/_new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/invoice/23/generate_hash', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/invoice/23/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/invoice/23/printable', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/invoice/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/invoice/23/remind', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/invoice/23/generate_hash', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/invoice/23/view', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/invoice/23/printable', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/invoice/23/index', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/invoice/23/remind', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
{'url':'/invoice/23/_remind', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/invoice/23/_check_invoice', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/invoice/23/pay', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/invoice/23/get_invoice', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/invoice/23/pay_invoice', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/invoice/23/pay', 'resp':[403,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/invoice/23/get_invoice', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/invoice/23/pay_invoice', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
{'url':'/invoice/23/_pay', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/invoice/23/refund', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/invoice/23/pay_manual', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/invoice/23/pdf', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/invoice/23/void', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/invoice/23/unvoid', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/invoice/23/extend', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/invoice/23/refund', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/invoice/23/pay_manual', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/invoice/23/pdf', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/invoice/23/void', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/invoice/23/unvoid', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/invoice/23/extend', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
{'url':'/location/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/location/23/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/location/23/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
{'url':'/location/23/_new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/location/23/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/location/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/location/23/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/location/23/view', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/location/23/index', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/location/23/edit', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
{'url':'/location/23/_edit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/location/23/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/location/23/delete', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
{'url':'/location/23/_delete', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/location/23/ical', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/map/23/index', 'resp':[200,200,200,200,200,200,200,200,200,200,200]},
{'url':'/miniconf_proposal/23/__init__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/miniconf_proposal/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/miniconf_proposal/23/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/miniconf_proposal/23/new', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
{'url':'/miniconf_proposal/23/_new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/miniconf_proposal/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/miniconf_proposal/23/index', 'resp':[403,302,302,302,302,302,302,302,302,302,302]},
{'url':'/not_found/23/view', 'resp':[200,200,200,200,200,200,200,200,200,200,200]},
- {'url':'/payment/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/payment/23/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/payment/23/index', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/payment/23/view', 'resp':[403,404,404,404,404,404,404,404,404,404,404]},
{'url':'/payment/23/new', 'resp':[200,200,200,200,200,200,200,200,200,200,200]},
- {'url':'/payment/23/new_manual', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/payment/23/new_manual', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
{'url':'/payment/23/_new_manual', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/person/23/validate_python', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/person/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/person/23/signin', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/person/23/finish_login', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
{'url':'/person/23/_redirect_user_optimally', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/person/23/_signin', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/person/23/persona_login', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
{'url':'/person/23/signout_confirm', 'resp':[302,302,302,302,302,302,302,302,302,302,302]},
- {'url':'/person/23/signout', 'resp':[302,302,302,302,302,302,302,302,302,302,302]},
- {'url':'/person/23/activate', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/person/23/activate', 'resp':[500,302,302,302,302,302,302,302,302,302,302]},
{'url':'/person/23/confirm', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
{'url':'/person/23/forgotten_password', 'resp':[200,200,200,200,200,200,200,200,200,200,200]},
{'url':'/person/23/_forgotten_password', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/person/23/reset_password', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
{'url':'/person/23/_reset_password', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/person/23/finish_signup', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/person/23/finish_signup', 'resp':[403,200,200,200,200,200,200,200,200,200,200]},
{'url':'/person/23/_finish_signup', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/person/23/finish_edit', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
- {'url':'/person/23/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/person/23/edit', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
{'url':'/person/23/_edit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/person/23/reprint', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/person/23/new', 'resp':[200,200,200,200,200,200,200,200,200,200,200]},
+ {'url':'/person/23/reprint', 'resp':[403,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/person/23/new', 'resp':[200,302,302,302,302,302,302,302,302,302,302]},
{'url':'/person/23/_new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/person/23/new_incomplete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/person/23/new_incomplete', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
{'url':'/person/23/_new_incomplete', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/person/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/person/23/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/person/23/roles', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/person/23/index', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/person/23/view', 'resp':[403,403,404,403,404,403,403,403,403,403,403]},
+ {'url':'/person/23/roles', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
{'url':'/person/23/_roles', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/person/23/offer', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/person/23/offer', 'resp':[403,403,404,403,404,403,403,403,403,403,403]},
{'url':'/person/23/_offer', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/photocomp/23/__init__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/photocomp/23/filename', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
@@ -1116,187 +1116,187 @@
{'url':'/photocomp/23/__repr__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/photocomp/23/index', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
{'url':'/photocomp/23/photo_title', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/photocomp/23/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/photocomp/23/upload', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/photocomp/23/edit', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/photocomp/23/upload', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
{'url':'/photocomp/23/photo', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/product/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/product/23/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/product/23/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
{'url':'/product/23/_new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/product/23/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/product/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/product/23/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/product/23/view', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/product/23/index', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/product/23/edit', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
{'url':'/product/23/_edit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/product/23/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/product/23/delete', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
{'url':'/product/23/_delete', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/product/23/json', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/product_category/23/validate_python', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/product/23/json', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/product_category/23/validate_python', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
{'url':'/product_category/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/product_category/23/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/product_category/23/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
{'url':'/product_category/23/_new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/product_category/23/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/product_category/23/stats', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/product_category/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/product_category/23/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/product_category/23/view', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/product_category/23/stats', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/product_category/23/index', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/product_category/23/edit', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
{'url':'/product_category/23/_edit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/product_category/23/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/product_category/23/delete', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
{'url':'/product_category/23/_delete', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/proposal/23/__init__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/proposal/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/proposal/23/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal/23/new', 'resp':[403,200,200,200,200,200,200,200,200,200,200]},
{'url':'/proposal/23/_new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/proposal/23/review', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal/23/review', 'resp':[403,403,403,403,404,403,403,403,403,403,403]},
{'url':'/proposal/23/_review', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/proposal/23/attach', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal/23/attach', 'resp':[403,200,200,200,200,200,200,200,200,200,200]},
{'url':'/proposal/23/_attach', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/proposal/23/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/proposal/23/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal/23/view', 'resp':[403,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/proposal/23/edit', 'resp':[403,404,404,404,404,404,404,404,404,404,404]},
{'url':'/proposal/23/_edit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/proposal/23/review_index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/proposal/23/summary', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/proposal/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/proposal/23/approve', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal/23/review_index', 'resp':[403,403,403,403,200,403,403,403,403,403,403]},
+ {'url':'/proposal/23/summary', 'resp':[403,403,403,403,200,403,403,403,403,403,403]},
+ {'url':'/proposal/23/index', 'resp':[403,200,200,200,200,200,200,200,200,200,200]},
+ {'url':'/proposal/23/approve', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
{'url':'/proposal/23/_approve', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/proposal/23/withdraw', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal/23/withdraw', 'resp':[403,404,404,404,404,404,404,404,404,404,404]},
{'url':'/proposal/23/_withdraw', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/proposal/23/latex', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/proposal/23/clean_abstract', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal/23/latex', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal/23/clean_abstract', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
{'url':'/proposal_status/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/proposal_status/23/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_status/23/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
{'url':'/proposal_status/23/_new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/proposal_status/23/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/proposal_status/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/proposal_status/23/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_status/23/view', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_status/23/index', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_status/23/edit', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
{'url':'/proposal_status/23/_edit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/proposal_status/23/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_status/23/delete', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
{'url':'/proposal_status/23/_delete', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/proposal_type/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/proposal_type/23/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_type/23/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
{'url':'/proposal_type/23/_new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/proposal_type/23/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/proposal_type/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/proposal_type/23/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_type/23/view', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_type/23/index', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_type/23/edit', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
{'url':'/proposal_type/23/_edit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/proposal_type/23/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/proposal_type/23/delete', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
{'url':'/proposal_type/23/_delete', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/registration/23/__init__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/registration/23/validate_python', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/23/validate_python', 'resp':[403,404,404,404,404,404,404,404,404,404,404]},
{'url':'/registration/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/registration/23/_able_to_edit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/registration/23/_product_available', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/registration/23/_generate_product_schema', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/registration/23/min_max_validator', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/registration/23/is_speaker', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/registration/23/is_miniconf_org', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/registration/23/is_volunteer', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/registration/23/is_role', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/registration/23/is_same_person', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/registration/23/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/23/min_max_validator', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/registration/23/is_speaker', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/registration/23/is_miniconf_org', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/registration/23/is_volunteer', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/registration/23/is_role', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/registration/23/is_same_person', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/registration/23/new', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
{'url':'/registration/23/_new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/registration/23/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/23/edit', 'resp':[403,404,404,404,404,404,404,404,404,404,404]},
{'url':'/registration/23/_edit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/registration/23/save_details', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/registration/23/status', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/registration/23/pay', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/registration/23/check_invoices', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/registration/23/manual_invoice', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/registration/23/invoices_identical', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/23/save_details', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/registration/23/status', 'resp':[403,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/registration/23/pay', 'resp':[403,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/registration/23/check_invoices', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/registration/23/manual_invoice', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/registration/23/invoices_identical', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
{'url':'/registration/23/_create_invoice', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/registration/23/apply_voucher', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/registration/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/23/apply_voucher', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/registration/23/index', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
{'url':'/registration/23/_export_list', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/registration/23/generate_badges', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/23/generate_badges', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
{'url':'/registration/23/_registration_badge_data', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/registration/23/_sanitise_badge_field', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/registration/23/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/registration/23/remind', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/registration/23/professionals_latex', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/registration/23/rego_desk_latex', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/23/view', 'resp':[403,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/registration/23/remind', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/23/professionals_latex', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/registration/23/rego_desk_latex', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
{'url':'/rego_note/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/rego_note/23/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_note/23/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
{'url':'/rego_note/23/_new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/rego_note/23/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/rego_note/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/rego_note/23/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_note/23/view', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_note/23/index', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_note/23/edit', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
{'url':'/rego_note/23/_edit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/rego_note/23/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_note/23/delete', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
{'url':'/rego_note/23/_delete', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/rego_room/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/rego_room/23/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_room/23/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
{'url':'/rego_room/23/_new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/rego_room/23/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/rego_room/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/rego_room/23/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_room/23/view', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_room/23/index', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_room/23/edit', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
{'url':'/rego_room/23/_edit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/rego_room/23/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/rego_room/23/delete', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
{'url':'/rego_room/23/_delete', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/review/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/review/23/_is_reviewer', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/review/23/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/review/23/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/review/23/edit', 'resp':[403,403,403,403,500,403,403,403,403,403,403]},
+ {'url':'/review/23/delete', 'resp':[403,403,403,403,500,403,403,403,403,403,403]},
{'url':'/review/23/_delete', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/review/23/summary', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/review/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/review/23/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/review/23/summary', 'resp':[403,403,403,403,200,403,403,403,403,403,403]},
+ {'url':'/review/23/index', 'resp':[403,403,403,403,200,403,403,403,403,403,403]},
+ {'url':'/review/23/view', 'resp':[403,403,403,403,302,403,403,403,403,403,403]},
{'url':'/role/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/role/23/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/role/23/edit', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
{'url':'/role/23/_edit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/role/23/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/role/23/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
{'url':'/role/23/_new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/role/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/role/23/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/role/23/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/role/23/index', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/role/23/view', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/role/23/delete', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
{'url':'/role/23/_delete', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/schedule/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/schedule/23/table', 'resp':[200,200,200,200,200,200,200,200,200,200,200]},
{'url':'/schedule/23/table_view', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/schedule/23/ical', 'resp':[200,200,200,200,200,200,200,200,200,200,200]},
{'url':'/schedule/23/json', 'resp':[200,200,200,200,200,200,200,200,200,200,200]},
- {'url':'/schedule/23/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/schedule/23/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
{'url':'/schedule/23/_new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/schedule/23/view', 'resp':[302,302,302,302,302,302,302,302,302,302,302]},
- {'url':'/schedule/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/schedule/23/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/schedule/23/index', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/schedule/23/edit', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
{'url':'/schedule/23/_edit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/schedule/23/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/schedule/23/delete', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
{'url':'/schedule/23/_delete', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/schedule/23/view_talk', 'resp':[200,200,200,200,200,200,200,200,200,200,200]},
{'url':'/secret_hash/23/lookup', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
{'url':'/secret_hash/23/transfer', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
- {'url':'/social_network/23/validate_python', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/social_network/23/validate_python', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
{'url':'/social_network/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/social_network/23/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/social_network/23/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
{'url':'/social_network/23/_new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/social_network/23/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/social_network/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/social_network/23/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/social_network/23/view', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/social_network/23/index', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/social_network/23/edit', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
{'url':'/social_network/23/_edit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/social_network/23/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/social_network/23/delete', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
{'url':'/social_network/23/_delete', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/special_offer/23/validate_python', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/special_offer/23/validate_python', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
{'url':'/special_offer/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/special_offer/23/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/special_offer/23/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
{'url':'/special_offer/23/_new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/special_offer/23/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/special_offer/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/special_offer/23/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/special_offer/23/view', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/special_offer/23/index', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/special_offer/23/edit', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
{'url':'/special_offer/23/_edit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/special_offer/23/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/special_offer/23/delete', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
{'url':'/special_offer/23/_delete', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/stream/23/validate_python', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/stream/23/validate_python', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
{'url':'/stream/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/stream/23/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/stream/23/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
{'url':'/stream/23/_new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/stream/23/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/stream/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/stream/23/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/stream/23/view', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
+ {'url':'/stream/23/index', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/stream/23/edit', 'resp':[403,403,500,403,403,403,403,403,403,403,403]},
{'url':'/stream/23/_edit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/stream/23/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/stream/23/delete', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
{'url':'/stream/23/_delete', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/time_slot/23/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/time_slot/23/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/time_slot/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/time_slot/23/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/time_slot/23/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/time_slot/23/delete', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/time_slot/23/edit', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/time_slot/23/index', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/time_slot/23/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/time_slot/23/view', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
{'url':'/time_slot/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/time_slot/23/_new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/time_slot/23/_edit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
@@ -1315,30 +1315,34 @@
{'url':'/volunteer/23/_new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/volunteer/23/_edit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/volunteer/23/_accept', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/volunteer/23/accept', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/volunteer/23/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/volunteer/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/volunteer/23/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/volunteer/23/pending', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/volunteer/23/reject', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/volunteer/23/view', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/volunteer/23/accept', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/volunteer/23/edit', 'resp':[403,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/volunteer/23/index', 'resp':[403,302,200,302,302,302,302,302,302,302,302]},
+ {'url':'/volunteer/23/new', 'resp':[403,200,200,200,200,200,200,200,200,200,200]},
+ {'url':'/volunteer/23/pending', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/volunteer/23/reject', 'resp':[403,403,404,403,403,403,403,403,403,403,403]},
+ {'url':'/volunteer/23/view', 'resp':[403,404,404,404,404,404,404,404,404,404,404]},
{'url':'/vote/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/vote/23/_new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/vote/23/_edit', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/vote/23/_revoke', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/vote/23/edit', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/vote/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/vote/23/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/vote/23/revoke', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/voucher/23/validate_python', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/vote/23/edit', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/vote/23/index', 'resp':[403,302,302,302,302,302,302,302,302,302,302]},
+ {'url':'/vote/23/new', 'resp':[403,200,200,200,200,200,200,200,200,200,200]},
+ {'url':'/vote/23/revoke', 'resp':[403,500,500,500,500,500,500,500,500,500,500]},
+ {'url':'/voucher/23/validate_python', 'resp':[403,404,404,404,404,404,404,404,404,404,404]},
{'url':'/voucher/23/__before__', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/voucher/23/_generate_product_schema', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/voucher/23/_new', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
{'url':'/voucher/23/_delete', 'resp':[404,404,404,404,404,404,404,404,404,404,404]},
- {'url':'/voucher/23/delete', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/voucher/23/generate_code', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/voucher/23/index', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
- {'url':'/voucher/23/new', 'resp':[403,403,403,403,403,403,403,403,403,403,403]},
+ {'url':'/voucher/23/delete', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ {'url':'/voucher/23/generate_code', 'resp':[403,404,404,404,404,404,404,404,404,404,404]},
+ {'url':'/voucher/23/index', 'resp':[403,200,200,200,200,200,200,200,200,200,200]},
+ {'url':'/voucher/23/new', 'resp':[403,403,200,403,403,403,403,403,403,403,403]},
+ # Don't hit - might have side effects
+ #{'url':'/person/23/signout', 'resp':[302,302,302,302,302,302,302,302,302,302,302]},
+ #{'url':'/person/23/finish_login', 'resp':[500,500,500,500,500,500,500,500,500,500,500]},
+ #{'url':'/person/23/signin', 'resp':[403,401,401,401,401,401,401,401,401,401,401]},
]
entry_points = controller_entry_points + routing_entry_points + smart_routing_entry_points + controller_id_entry_points
@@ -1346,6 +1350,15 @@
# Note we don't test special cases like if the user making the request matches the user details being requested
# It is assumed that focussed tests will pick up those sort of special cases
+big = {}
+for pt in entry_points:
+ if pt['url'] in big:
+ if big[pt['url']] != pt['resp']:
+ print pt['url'], big[pt['url']], pt['resp']
+ else:
+ big[pt['url']] = pt['resp']
+
+
class TestPermissions(object):
def try_url(self,app,url):
try:
@@ -1395,11 +1408,84 @@ def gen_table(self, app, db_session):
for pt in table:
print "{'url':%-45s 'resp':%s}," % ("'"+pt['url']+"',", pt['resp'])
+ def update_table(self, app, db_session):
+ tables = [controller_entry_points, routing_entry_points, smart_routing_entry_points, controller_id_entry_points]
+ for role in roles:
+ print ""
+ if role == 'public':
+ # No login
+ app.get('/person/signout')
+ assert not isSignedIn(app)
+ else:
+ if role == 'none':
+ # Default, no special roles
+ p = CompletePersonFactory()
+ else:
+ # We have a role
+ r = RoleFactory(name=role)
+ p = CompletePersonFactory(roles=[r])
+ db_session.commit()
+ do_login(app, p)
+ assert isSignedIn(app), "Person with role %s could not sign in" % role
+
+ # entry_point expected return is an array which syncs up with the role positions
+ role_index = roles.index(role)
+
+ for table in tables:
+ for pt in table:
+ ret = self.try_url(app,pt['url'])
+ if ret != pt['resp'][role_index]:
+ print "%s for %s returned %s, expected %s" % (pt['url'], role, ret, pt['resp'][role_index])
+ pt['resp'][role_index] = ret
+ print "controller_entry_points", "=", controller_entry_points
+ print "routing_entry_points", "=", routing_entry_points
+ print "smart_routing_entry_points", "=", smart_routing_entry_points
+ print "controller_id_entry_points", "=", controller_id_entry_points
+
+ def random_table(self, app, db_session):
+ """ /person/signin varies response based on position.
+ This test was crafted to look for other instances like this but none were found.
+ It is being kept as it is probable that a similar one off check will be desired later
+ """
+ all_points = controller_entry_points + routing_entry_points + smart_routing_entry_points + controller_id_entry_points
+ random.shuffle(all_points)
+
+ for role in roles:
+ print ""
+ app.get('/person/signout')
+ if role == 'public':
+ # No login
+ assert not isSignedIn(app)
+ else:
+ if role == 'none':
+ # Default, no special roles
+ p = CompletePersonFactory()
+ else:
+ # We have a role
+ r = RoleFactory(name=role)
+ p = CompletePersonFactory(roles=[r])
+ db_session.commit()
+ do_login(app, p)
+ assert isSignedIn(app), "Person with role %s could not sign in" % role
+
+ # entry_point expected return is an array which syncs up with the role positions
+ role_index = roles.index(role)
+
+ for pt in all_points:
+ ret = self.try_url(app,pt['url'])
+ if ret != pt['resp'][role_index]:
+ pt['resp'][role_index] = "X"
+
+ print all_points
+
+
+
# Testing every role takes about 10 minutes on my box
# Using parametrize breaks it up into 10 tests, which is less scary when running them
- # Particularly important as the travis framework is a bit slow and has a ten minute timeout
+ # Particularly important as the travis framework has a ten minute timeout
@pytest.mark.parametrize("role", roles)
def test_role(self, app, db_session, role):
+ print ""
if role == 'public':
# No login
app.get('/person/signout')