Checkpoint: views tests at 96%
- Legacy-Id: 10606
This commit is contained in:
parent
f68d546233
commit
de0b7c9a37
|
@ -6,6 +6,7 @@ import shutil
|
||||||
from pyquery import PyQuery
|
from pyquery import PyQuery
|
||||||
|
|
||||||
from django.db import IntegrityError
|
from django.db import IntegrityError
|
||||||
|
from django.db.models import Max
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.core.urlresolvers import reverse
|
from django.core.urlresolvers import reverse
|
||||||
from django.core.files import File
|
from django.core.files import File
|
||||||
|
@ -35,6 +36,7 @@ from ietf.nomcom.factories import NomComFactory, FeedbackFactory, \
|
||||||
key
|
key
|
||||||
from ietf.person.factories import PersonFactory
|
from ietf.person.factories import PersonFactory
|
||||||
from ietf.dbtemplate.factories import DBTemplateFactory
|
from ietf.dbtemplate.factories import DBTemplateFactory
|
||||||
|
from ietf.dbtemplate.models import DBTemplate
|
||||||
|
|
||||||
client_test_cert_files = None
|
client_test_cert_files = None
|
||||||
|
|
||||||
|
@ -1104,7 +1106,7 @@ class InactiveNomcomTests(TestCase):
|
||||||
title='Test template',
|
title='Test template',
|
||||||
path='/nomcom/'+self.nc.group.acronym+'/test',
|
path='/nomcom/'+self.nc.group.acronym+'/test',
|
||||||
variables='',
|
variables='',
|
||||||
type_id='text',
|
type_id='plain',
|
||||||
content='test content')
|
content='test content')
|
||||||
url = reverse('nomcom_edit_template',kwargs={'year':self.nc.year(), 'template_id':template.id})
|
url = reverse('nomcom_edit_template',kwargs={'year':self.nc.year(), 'template_id':template.id})
|
||||||
login_testing_unauthorized(self, self.chair.user.username, url)
|
login_testing_unauthorized(self, self.chair.user.username, url)
|
||||||
|
@ -1269,7 +1271,7 @@ class NewActiveNomComTests(TestCase):
|
||||||
url = reverse('nomcom_private_feedback_email',kwargs={'year':self.nc.year()})
|
url = reverse('nomcom_private_feedback_email',kwargs={'year':self.nc.year()})
|
||||||
login_testing_unauthorized(self,self.chair.user.username,url)
|
login_testing_unauthorized(self,self.chair.user.username,url)
|
||||||
response = self.client.get(url)
|
response = self.client.get(url)
|
||||||
self.assertTrue(response.status_code,200)
|
self.assertEqual(response.status_code,200)
|
||||||
fb_count_before = Feedback.objects.count()
|
fb_count_before = Feedback.objects.count()
|
||||||
response = self.client.post(url,{'email_text':"""To: rjsparks@nostrum.com
|
response = self.client.post(url,{'email_text':"""To: rjsparks@nostrum.com
|
||||||
From: Robert Sparks <rjsparks@nostrum.com>
|
From: Robert Sparks <rjsparks@nostrum.com>
|
||||||
|
@ -1418,7 +1420,6 @@ Junk body for testing
|
||||||
# nothing was classified as a nomination.
|
# nothing was classified as a nomination.
|
||||||
fb0 = FeedbackFactory(nomcom=self.nc,type_id=None)
|
fb0 = FeedbackFactory(nomcom=self.nc,type_id=None)
|
||||||
fb1 = FeedbackFactory(nomcom=self.nc,type_id=None)
|
fb1 = FeedbackFactory(nomcom=self.nc,type_id=None)
|
||||||
np = NomineePosition.objects.filter(position__nomcom = self.nc,state='accepted').first()
|
|
||||||
response = self.client.post(url, {'form-TOTAL_FORMS': 2,
|
response = self.client.post(url, {'form-TOTAL_FORMS': 2,
|
||||||
'form-INITIAL_FORMS': 2,
|
'form-INITIAL_FORMS': 2,
|
||||||
'form-0-id': fb0.id,
|
'form-0-id': fb0.id,
|
||||||
|
@ -1431,6 +1432,90 @@ Junk body for testing
|
||||||
self.assertEqual(q('input[name=\"form-0-type\"]').attr['value'],'comment')
|
self.assertEqual(q('input[name=\"form-0-type\"]').attr['value'],'comment')
|
||||||
self.assertFalse(q('input[name=\"extra_ids\"]'))
|
self.assertFalse(q('input[name=\"extra_ids\"]'))
|
||||||
|
|
||||||
|
def test_feedback_unrelated(self):
|
||||||
|
FeedbackFactory(nomcom=self.nc,type_id='junk')
|
||||||
|
url=reverse('nomcom_view_feedback_unrelated',kwargs={'year':self.nc.year()})
|
||||||
|
login_testing_unauthorized(self,self.chair.user.username,url)
|
||||||
|
provide_private_key_to_test_client(self)
|
||||||
|
response = self.client.get(url)
|
||||||
|
self.assertEqual(response.status_code,200)
|
||||||
|
|
||||||
|
def test_list_templates(self):
|
||||||
|
DBTemplateFactory.create(group=self.nc.group,
|
||||||
|
title='Test template',
|
||||||
|
path='/nomcom/'+self.nc.group.acronym+'/test',
|
||||||
|
variables='',
|
||||||
|
type_id='plain',
|
||||||
|
content='test content')
|
||||||
|
url=reverse('nomcom_list_templates',kwargs={'year':self.nc.year()})
|
||||||
|
login_testing_unauthorized(self,self.chair.user.username,url)
|
||||||
|
response = self.client.get(url)
|
||||||
|
self.assertEqual(response.status_code,200)
|
||||||
|
|
||||||
|
def test_edit_templates(self):
|
||||||
|
template = DBTemplateFactory.create(group=self.nc.group,
|
||||||
|
title='Test template',
|
||||||
|
path='/nomcom/'+self.nc.group.acronym+'/test',
|
||||||
|
variables='',
|
||||||
|
type_id='plain',
|
||||||
|
content='test content')
|
||||||
|
url=reverse('nomcom_edit_template',kwargs={'year':self.nc.year(),'template_id':template.id})
|
||||||
|
login_testing_unauthorized(self,self.chair.user.username,url)
|
||||||
|
response = self.client.get(url)
|
||||||
|
self.assertEqual(response.status_code,200)
|
||||||
|
response = self.client.post(url,{'content': 'more interesting test content'})
|
||||||
|
self.assertEqual(response.status_code,302)
|
||||||
|
template = DBTemplate.objects.get(id=template.id)
|
||||||
|
self.assertEqual('more interesting test content',template.content)
|
||||||
|
|
||||||
|
def test_list_positions(self):
|
||||||
|
url = reverse('nomcom_list_positions',kwargs={'year':self.nc.year()})
|
||||||
|
login_testing_unauthorized(self,self.chair.user.username,url)
|
||||||
|
response = self.client.get(url)
|
||||||
|
self.assertEqual(response.status_code,200)
|
||||||
|
|
||||||
|
def test_remove_position(self):
|
||||||
|
position = self.nc.position_set.filter(nomineeposition__isnull=False).first()
|
||||||
|
f = FeedbackFactory(nomcom=self.nc)
|
||||||
|
f.positions.add(position)
|
||||||
|
url = reverse('nomcom_remove_position',kwargs={'year':self.nc.year(),'position_id':position.id})
|
||||||
|
login_testing_unauthorized(self,self.chair.user.username,url)
|
||||||
|
response = self.client.get(url)
|
||||||
|
self.assertEqual(response.status_code,200)
|
||||||
|
q = PyQuery(response.content)
|
||||||
|
self.assertTrue(any(['likely to be harmful' in x.text for x in q('.alert-warning')]))
|
||||||
|
response = self.client.post(url,{'remove':position.id})
|
||||||
|
self.assertEqual(response.status_code, 302)
|
||||||
|
self.assertFalse(self.nc.position_set.filter(id=position.id))
|
||||||
|
|
||||||
|
def test_remove_invalid_position(self):
|
||||||
|
no_such_position_id = self.nc.position_set.aggregate(Max('id'))['id__max']+1
|
||||||
|
url = reverse('nomcom_remove_position',kwargs={'year':self.nc.year(),'position_id':no_such_position_id})
|
||||||
|
login_testing_unauthorized(self,self.chair.user.username,url)
|
||||||
|
response = self.client.get(url)
|
||||||
|
self.assertEqual(response.status_code, 404)
|
||||||
|
|
||||||
|
def test_edit_position(self):
|
||||||
|
position = self.nc.position_set.filter(is_open=True).first()
|
||||||
|
url = reverse('nomcom_edit_position',kwargs={'year':self.nc.year(),'position_id':position.id})
|
||||||
|
login_testing_unauthorized(self,self.chair.user.username,url)
|
||||||
|
response = self.client.get(url)
|
||||||
|
self.assertEqual(response.status_code, 200)
|
||||||
|
response = self.client.post(url,{'name':'more interesting test name'})
|
||||||
|
self.assertEqual(response.status_code, 302)
|
||||||
|
position = Position.objects.get(id=position.id)
|
||||||
|
self.assertEqual('more interesting test name',position.name)
|
||||||
|
self.assertFalse(position.is_open)
|
||||||
|
|
||||||
|
def test_edit_invalid_position(self):
|
||||||
|
no_such_position_id = self.nc.position_set.aggregate(Max('id'))['id__max']+1
|
||||||
|
url = reverse('nomcom_edit_position',kwargs={'year':self.nc.year(),'position_id':no_such_position_id})
|
||||||
|
login_testing_unauthorized(self,self.chair.user.username,url)
|
||||||
|
response = self.client.get(url)
|
||||||
|
self.assertEqual(response.status_code, 404)
|
||||||
|
|
||||||
|
# Note that the old tests currently test the edit_position view through its nomcom_add_position name
|
||||||
|
|
||||||
|
|
||||||
class NomComIndexTests(TestCase):
|
class NomComIndexTests(TestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
|
@ -1441,3 +1526,32 @@ class NomComIndexTests(TestCase):
|
||||||
url = reverse('ietf.nomcom.views.index')
|
url = reverse('ietf.nomcom.views.index')
|
||||||
response = self.client.get(url)
|
response = self.client.get(url)
|
||||||
self.assertEqual(response.status_code,200)
|
self.assertEqual(response.status_code,200)
|
||||||
|
|
||||||
|
class NoPublicKeyTests(TestCase):
|
||||||
|
def setUp(self):
|
||||||
|
self.nc = NomComFactory.create(**nomcom_kwargs_for_year(public_key=None))
|
||||||
|
self.chair = self.nc.group.role_set.filter(name='chair').first().person
|
||||||
|
|
||||||
|
def do_common_work(self,url,expected_form):
|
||||||
|
login_testing_unauthorized(self,self.chair.user.username,url)
|
||||||
|
response = self.client.get(url)
|
||||||
|
self.assertEqual(response.status_code,200)
|
||||||
|
q=PyQuery(response.content)
|
||||||
|
self.assertTrue(any(['not yet' in x.text for x in q('.alert-warning')]))
|
||||||
|
self.assertEqual(bool(q('form:not(.navbar-form)')),expected_form)
|
||||||
|
self.client.logout()
|
||||||
|
|
||||||
|
def test_not_yet(self):
|
||||||
|
# Warn reminder mail
|
||||||
|
self.do_common_work(reverse('nomcom_send_reminder_mail',kwargs={'year':self.nc.year(),'type':'accept'}),True)
|
||||||
|
# No nominations
|
||||||
|
self.do_common_work(reverse('nomcom_private_nominate',kwargs={'year':self.nc.year()}),False)
|
||||||
|
# No feedback
|
||||||
|
self.do_common_work(reverse('nomcom_private_feedback',kwargs={'year':self.nc.year()}),False)
|
||||||
|
# No feedback email
|
||||||
|
self.do_common_work(reverse('nomcom_private_feedback_email',kwargs={'year':self.nc.year()}),False)
|
||||||
|
# No questionnaire responses
|
||||||
|
self.do_common_work(reverse('nomcom_private_questionnaire',kwargs={'year':self.nc.year()}),False)
|
||||||
|
# Warn on edit nomcom
|
||||||
|
self.do_common_work(reverse('nomcom_edit_nomcom',kwargs={'year':self.nc.year()}),True)
|
||||||
|
|
||||||
|
|
|
@ -38,11 +38,7 @@ import debug # pyflakes:ignore
|
||||||
def index(request):
|
def index(request):
|
||||||
nomcom_list = Group.objects.filter(type__slug='nomcom').order_by('acronym')
|
nomcom_list = Group.objects.filter(type__slug='nomcom').order_by('acronym')
|
||||||
for nomcom in nomcom_list:
|
for nomcom in nomcom_list:
|
||||||
year = nomcom.acronym[6:]
|
year = int(nomcom.acronym[6:])
|
||||||
try:
|
|
||||||
year = int(year)
|
|
||||||
except ValueError:
|
|
||||||
year = None
|
|
||||||
nomcom.year = year
|
nomcom.year = year
|
||||||
nomcom.label = "%s/%s" % (year, year+1)
|
nomcom.label = "%s/%s" % (year, year+1)
|
||||||
if year in [ 2005, 2006, 2007, 2008, 2009, 2010 ]:
|
if year in [ 2005, 2006, 2007, 2008, 2009, 2010 ]:
|
||||||
|
@ -816,7 +812,7 @@ def edit_nomcom(request, year):
|
||||||
if nomcom.public_key:
|
if nomcom.public_key:
|
||||||
message = ('warning', 'Previous data will remain encrypted with the old key')
|
message = ('warning', 'Previous data will remain encrypted with the old key')
|
||||||
else:
|
else:
|
||||||
message = ('warning', 'The nomcom has not a public key yet')
|
message = ('warning', 'This Nomcom does not yet have a public key')
|
||||||
|
|
||||||
ReminderDateInlineFormSet = inlineformset_factory(parent_model=NomCom,
|
ReminderDateInlineFormSet = inlineformset_factory(parent_model=NomCom,
|
||||||
model=ReminderDates,
|
model=ReminderDates,
|
||||||
|
|
Loading…
Reference in a new issue