Fix a bunch of failing tests, mostly due to changes in markup

- Legacy-Id: 8529
This commit is contained in:
Ole Laursen 2014-10-31 17:20:14 +00:00
parent b5a0ab81a6
commit 7d0e817e5d
14 changed files with 80 additions and 93 deletions

View file

@ -97,7 +97,7 @@ class SearchTestCase(TestCase):
make_test_data()
r = self.client.get("/")
self.assertEqual(r.status_code, 200)
self.assertTrue("Search Internet-Drafts" in r.content)
self.assertTrue("Search Documents" in r.content)
def test_drafts_pages(self):
draft = make_test_data()
@ -373,14 +373,12 @@ class DocTestCase(TestCase):
self.client.login(username='iab-chair', password='iab-chair+password')
r = self.client.get(urlreverse("doc_view", kwargs=dict(name=doc.name)))
self.assertEqual(r.status_code, 200)
q = PyQuery(r.content)
self.assertFalse(q('.actions'))
self.assertTrue("Request publication" not in r.content)
Document.objects.filter(pk=doc.pk).update(stream='iab')
r = self.client.get(urlreverse("doc_view", kwargs=dict(name=doc.name)))
self.assertEqual(r.status_code, 200)
q = PyQuery(r.content)
self.assertTrue('IESG state' in q('.actions').html())
self.assertTrue("Request publication" in r.content)
class AddCommentTestCase(TestCase):

View file

@ -174,9 +174,9 @@ class BallotWriteupsTests(TestCase):
self.assertEqual(r.status_code, 200)
q = PyQuery(r.content)
self.assertEqual(len(q('textarea[name=last_call_text]')), 1)
self.assertEqual(len(q('input[type=submit][value*="Save Last Call"]')), 1)
# we're secretariat, so we got The Link
self.assertEqual(len(q('a:contains("Make Last Call")')), 1)
self.assertTrue(q('[type=submit]:contains("Save")'))
# we're Secretariat, so we got The Link
self.assertEqual(len(q('a:contains("Issue last call")')), 1)
# subject error
r = self.client.post(url, dict(
@ -184,7 +184,7 @@ class BallotWriteupsTests(TestCase):
save_last_call_text="1"))
self.assertEqual(r.status_code, 200)
q = PyQuery(r.content)
self.assertTrue(len(q('ul.errorlist')) > 0)
self.assertTrue(len(q('form .has-error')) > 0)
# save
r = self.client.post(url, dict(
@ -243,7 +243,7 @@ class BallotWriteupsTests(TestCase):
self.assertEqual(r.status_code, 200)
q = PyQuery(r.content)
self.assertEqual(len(q('textarea[name=ballot_writeup]')), 1)
self.assertEqual(len(q('input[type=submit][value*="Save Ballot Writeup"]')), 1)
self.assertTrue(q('[type=submit]:contains("Save")'))
self.assertTrue("IANA does not" in r.content)
# save
@ -317,7 +317,7 @@ class BallotWriteupsTests(TestCase):
self.assertEqual(r.status_code, 200)
q = PyQuery(r.content)
self.assertEqual(len(q('textarea[name=approval_text]')), 1)
self.assertEqual(len(q('input[type=submit][value*="Save Approval"]')), 1)
self.assertTrue(q('[type=submit]:contains("Save")'))
# save
r = self.client.post(url, dict(
@ -365,8 +365,8 @@ class ApproveBallotTests(TestCase):
r = self.client.get(url)
self.assertEqual(r.status_code, 200)
q = PyQuery(r.content)
self.assertTrue("send out the announcement" in q('.actions input[type=submit]')[0].get('value').lower())
self.assertEqual(len(q('.announcement pre:contains("Subject: Protocol Action")')), 1)
self.assertTrue(q('[type=submit]:contains("send announcement")'))
self.assertEqual(len(q('form pre:contains("Subject: Protocol Action")')), 1)
# approve
mailbox_before = len(outbox)
@ -466,7 +466,7 @@ class DeferUndeferTestCase(TestCase):
r = self.client.get(url)
self.assertEqual(r.status_code, 200)
q = PyQuery(r.content)
self.assertEqual(len(q('form.defer')),1)
self.assertEqual(len(q('[type=submit][value="Defer ballot"]')),1)
# defer
mailbox_before = len(outbox)
@ -521,7 +521,7 @@ class DeferUndeferTestCase(TestCase):
r = self.client.get(url)
self.assertEqual(r.status_code, 200)
q = PyQuery(r.content)
self.assertEqual(len(q('form.undefer')),1)
self.assertEqual(len(q('[type=submit][value="Undefer ballot"]')),1)
# undefer
mailbox_before = len(outbox)

View file

@ -71,7 +71,7 @@ class EditCharterTests(TestCase):
r = self.client.post(url, dict(charter_state="-12345"))
self.assertEqual(r.status_code, 200)
q = PyQuery(r.content)
self.assertTrue(len(q('form ul.errorlist')) > 0)
self.assertTrue(len(q('form .has-error')) > 0)
self.assertEqual(charter.get_state(), first_state)
# change state
@ -370,18 +370,16 @@ class EditCharterTests(TestCase):
desc="Has been copied",
due=due_date,
resolved="")
# m2 isn't used -- missing test?
m2 = GroupMilestone.objects.create(group=group, # pyflakes:ignore
state_id="active",
desc="To be deleted",
due=due_date,
resolved="")
# m3 isn't used -- missing test?
m3 = GroupMilestone.objects.create(group=group, # pyflakes:ignore
state_id="charter",
desc="Has been copied",
due=due_date,
resolved="")
GroupMilestone.objects.create(group=group,
state_id="active",
desc="To be deleted",
due=due_date,
resolved="")
GroupMilestone.objects.create(group=group,
state_id="charter",
desc="Has been copied",
due=due_date,
resolved="")
m4 = GroupMilestone.objects.create(group=group,
state_id="charter",
desc="New charter milestone",
@ -392,7 +390,7 @@ class EditCharterTests(TestCase):
r = self.client.get(url)
self.assertEqual(r.status_code, 200)
q = PyQuery(r.content)
self.assertTrue("Send out the announcement" in q('input[type=submit]')[0].get('value'))
self.assertTrue(q('[type=submit]:contains("Send announcement")'))
self.assertEqual(len(q('pre')), 1)
# approve

View file

@ -33,7 +33,7 @@ class ChangeStateTests(TestCase):
login_testing_unauthorized(self, "secretary", url)
first_state = draft.get_state("draft-iesg")
next_states = first_state.next_states
next_states = first_state.next_states.all()
# normal get
r = self.client.get(url)
@ -42,14 +42,14 @@ class ChangeStateTests(TestCase):
self.assertEqual(len(q('form select[name=state]')), 1)
if next_states:
self.assertTrue(len(q('.next-states form input[type=hidden]')) > 0)
self.assertEqual(len(q('[type=submit][value="%s"]' % next_states[0].name)), 1)
# faulty post
r = self.client.post(url, dict(state=State.objects.get(used=True, type="draft", slug="active").pk))
self.assertEqual(r.status_code, 200)
q = PyQuery(r.content)
self.assertTrue(len(q('form ul.errorlist')) > 0)
self.assertTrue(len(q('form .has-error')) > 0)
draft = Document.objects.get(name=draft.name)
self.assertEqual(draft.get_state("draft-iesg"), first_state)
@ -81,7 +81,7 @@ class ChangeStateTests(TestCase):
r = self.client.get(url)
self.assertEqual(r.status_code, 200)
q = PyQuery(r.content)
self.assertEqual(len(q('.prev-state form input[name="state"]')), 1)
self.assertEqual(len(q('form [type=submit][value="%s"]' % first_state.name)), 1)
def test_pull_from_rfc_queue(self):
draft = make_test_data()
@ -127,7 +127,7 @@ class ChangeStateTests(TestCase):
r = self.client.post(url, dict(state="foobarbaz"))
self.assertEqual(r.status_code, 200)
q = PyQuery(r.content)
self.assertTrue(len(q('form ul.errorlist')) > 0)
self.assertTrue(len(q('form .has-error')) > 0)
draft = Document.objects.get(name=draft.name)
self.assertEqual(draft.get_state("draft-iana-review"), first_state)
@ -149,7 +149,7 @@ class ChangeStateTests(TestCase):
self.assertTrue(not draft.latest_event(type="changed_ballot_writeup_text"))
r = self.client.post(url, dict(state=State.objects.get(used=True, type="draft-iesg", slug="lc-req").pk))
self.assertContains(r, "Your request to issue the Last Call")
self.assertTrue("Your request to issue" in r.content)
# last call text
e = draft.latest_event(WriteupDocEvent, type="changed_last_call_text")
@ -195,7 +195,7 @@ class EditInfoTests(TestCase):
r = self.client.post(url, dict(ad="123456789"))
self.assertEqual(r.status_code, 200)
q = PyQuery(r.content)
self.assertTrue(len(q('form ul.errorlist')) > 0)
self.assertTrue(len(q('form .has-error')) > 0)
draft = Document.objects.get(name=draft.name)
self.assertEqual(draft.ad, prev_ad)
@ -689,7 +689,7 @@ class IndividualInfoFormsTests(TestCase):
r = self.client.get(url)
self.assertEqual(r.status_code,200)
q = PyQuery(r.content)
self.assertEqual(len(q('form.change-stream')),1)
self.assertEqual(len(q('[type=submit]:contains("Save")')), 1)
# shift to ISE stream
messages_before = len(outbox)
@ -742,13 +742,13 @@ class IndividualInfoFormsTests(TestCase):
r = self.client.get(url)
self.assertEqual(r.status_code,200)
q = PyQuery(r.content)
self.assertEqual(len(q('form.change-intended-status')),1)
self.assertEqual(len(q('[type=submit]:contains("Save")')), 1)
# don't allow status level to be cleared
r = self.client.post(url,dict(intended_std_level=""))
self.assertEqual(r.status_code,200)
q = PyQuery(r.content)
self.assertTrue(len(q('form ul.errorlist')) > 0)
self.assertTrue(len(q('form .has-error')) > 0)
# change intended status level
messages_before = len(outbox)
@ -768,7 +768,7 @@ class IndividualInfoFormsTests(TestCase):
r = self.client.get(url)
self.assertEqual(r.status_code,200)
q = PyQuery(r.content)
self.assertEqual(len(q('form.telechat-date')),1)
self.assertEqual(len(q('[type=submit]:contains("Save")')), 1)
# set a date
self.assertFalse(self.doc.latest_event(TelechatDocEvent, "scheduled_for_telechat"))
@ -791,7 +791,7 @@ class IndividualInfoFormsTests(TestCase):
r = self.client.get(url)
self.assertEqual(r.status_code,200)
q = PyQuery(r.content)
self.assertEqual(len(q('form.edit-iesg-note')),1)
self.assertEqual(len(q('[type=submit]:contains("Save")')),1)
# post
r = self.client.post(url,dict(note='ZpyQFGmA\r\nZpyQFGmA'))
@ -853,7 +853,7 @@ class IndividualInfoFormsTests(TestCase):
r = self.client.post(url, dict(shepherd=two_answers))
self.assertEqual(r.status_code, 200)
q = PyQuery(r.content)
self.assertTrue(len(q('form ul.errorlist')) > 0)
self.assertTrue(len(q('form .has-error')) > 0)
def test_doc_change_shepherd_email(self):
self.doc.shepherd = None
@ -892,15 +892,16 @@ class IndividualInfoFormsTests(TestCase):
r = self.client.get(url)
self.assertEqual(r.status_code,200)
q = PyQuery(r.content)
self.assertEqual(len(q('span[id=doc_edit_shepherd_writeup]')),1)
self.assertEqual(len(q('.content-wrapper a:contains("Edit")')), 1)
# Try again when no longer a shepherd.
self.doc.shepherd = None
self.doc.save()
r = self.client.get(url)
self.assertEqual(r.status_code,200)
q = PyQuery(r.content)
self.assertEqual(len(q('span[id=doc_edit_shepherd_writeup]')),1)
self.assertEqual(len(q('.content-wrapper a:contains("Edit")')), 0)
def test_doc_change_shepherd_writeup(self):
url = urlreverse('doc_edit_shepherd_writeup',kwargs=dict(name=self.docname))
@ -1015,7 +1016,7 @@ class RequestPublicationTests(TestCase):
q = PyQuery(r.content)
subject = q('input#id_subject')[0].get("value")
self.assertTrue("Document Action" in subject)
body = q('.request-publication #id_body').text()
body = q('#id_body').text()
self.assertTrue("Informational" in body)
self.assertTrue("IAB" in body)
@ -1220,38 +1221,38 @@ class ChangeReplacesTests(TestCase):
# normal get
r = self.client.get(url)
self.assertEquals(r.status_code, 200)
self.assertEqual(r.status_code, 200)
q = PyQuery(r.content)
self.assertEquals(len(q('form[class=change-replaces]')), 1)
self.assertEqual(len(q('[type=submit]:contains("Save")')), 1)
# Post that says replacea replaces base a
self.assertEquals(self.basea.get_state().slug,'active')
self.assertEqual(self.basea.get_state().slug,'active')
repljson='{"%d":"%s"}'%(DocAlias.objects.get(name=self.basea.name).id,self.basea.name)
r = self.client.post(url, dict(replaces=repljson))
self.assertEquals(r.status_code, 302)
self.assertEqual(r.status_code, 302)
self.assertEqual(RelatedDocument.objects.filter(relationship__slug='replaces',source=self.replacea).count(),1)
self.assertEquals(Document.objects.get(name='draft-test-base-a').get_state().slug,'repl')
self.assertEqual(Document.objects.get(name='draft-test-base-a').get_state().slug,'repl')
# Post that says replaceboth replaces both base a and base b
url = urlreverse('doc_change_replaces', kwargs=dict(name=self.replaceboth.name))
self.assertEquals(self.baseb.get_state().slug,'expired')
self.assertEqual(self.baseb.get_state().slug,'expired')
repljson='{"%d":"%s","%d":"%s"}'%(DocAlias.objects.get(name=self.basea.name).id,self.basea.name,
DocAlias.objects.get(name=self.baseb.name).id,self.baseb.name)
r = self.client.post(url, dict(replaces=repljson))
self.assertEquals(r.status_code, 302)
self.assertEquals(Document.objects.get(name='draft-test-base-a').get_state().slug,'repl')
self.assertEquals(Document.objects.get(name='draft-test-base-b').get_state().slug,'repl')
self.assertEqual(r.status_code, 302)
self.assertEqual(Document.objects.get(name='draft-test-base-a').get_state().slug,'repl')
self.assertEqual(Document.objects.get(name='draft-test-base-b').get_state().slug,'repl')
# Post that undoes replaceboth
repljson='{}'
r = self.client.post(url, dict(replaces=repljson))
self.assertEquals(r.status_code, 302)
self.assertEquals(Document.objects.get(name='draft-test-base-a').get_state().slug,'repl') # Because A is still also replaced by replacea
self.assertEquals(Document.objects.get(name='draft-test-base-b').get_state().slug,'expired')
self.assertEqual(r.status_code, 302)
self.assertEqual(Document.objects.get(name='draft-test-base-a').get_state().slug,'repl') # Because A is still also replaced by replacea
self.assertEqual(Document.objects.get(name='draft-test-base-b').get_state().slug,'expired')
# Post that undoes replacea
url = urlreverse('doc_change_replaces', kwargs=dict(name=self.replacea.name))
r = self.client.post(url, dict(replaces=repljson))
self.assertEquals(r.status_code, 302)
self.assertEquals(Document.objects.get(name='draft-test-base-a').get_state().slug,'active')
self.assertEqual(r.status_code, 302)
self.assertEqual(Document.objects.get(name='draft-test-base-a').get_state().slug,'active')

View file

@ -33,7 +33,7 @@
import os, datetime, urllib, json, glob
from django.http import HttpResponse, Http404
from django.shortcuts import render_to_response, get_object_or_404, redirect
from django.shortcuts import render_to_response, get_object_or_404, redirect, render
from django.template import RequestContext
from django.template.loader import render_to_string
from django.core.exceptions import ObjectDoesNotExist
@ -863,20 +863,17 @@ def telechat_date(request, name):
e = doc.latest_event(TelechatDocEvent, type="scheduled_for_telechat")
initial_returning_item = bool(e and e.returning_item)
prompts = []
warnings = []
if e and e.telechat_date and doc.type.slug != 'charter':
if e.telechat_date==datetime.date.today():
prompts.append( "This document is currently scheduled for today's telechat. "
+"Please set the returning item bit carefully.")
warnings.append( "This document is currently scheduled for today's telechat. "
+"Please set the returning item bit carefully.")
elif e.telechat_date<datetime.date.today() and has_same_ballot(doc,e.telechat_date):
initial_returning_item = True
prompts.append( "This document appears to have been on a previous telechat with the same ballot, "
warnings.append( "This document appears to have been on a previous telechat with the same ballot, "
+"so the returning item bit has been set. Clear it if that is not appropriate.")
else:
pass
initial = dict(telechat_date=e.telechat_date if e else None,
returning_item = initial_returning_item,
)
@ -895,13 +892,12 @@ def telechat_date(request, name):
if doc.type.slug=='charter':
del form.fields['returning_item']
return render_to_response('doc/edit_telechat_date.html',
return render(request, 'doc/edit_telechat_date.html',
dict(doc=doc,
form=form,
user=request.user,
prompts=prompts,
login=login),
context_instance=RequestContext(request))
warnings=warnings,
login=login))
@role_required('Area Director', 'Secretariat')
def edit_notify(request, name):

View file

@ -64,7 +64,7 @@ def change_state(request, name):
and logging the change as a comment."""
doc = get_object_or_404(Document, docalias__name=name)
if (not doc.latest_event(type="started_iesg_process")) or doc.get_state_slug() == "expired":
raise Http404()
raise Http404
login = request.user.person
@ -214,7 +214,7 @@ def change_stream(request, name):
and logging the change as a comment."""
doc = get_object_or_404(Document, docalias__name=name)
if not doc.type_id=='draft':
raise Http404()
raise Http404
if not (has_role(request.user, ("Area Director", "Secretariat")) or
(request.user.is_authenticated() and
@ -505,10 +505,10 @@ def to_iesg(request,name):
doc = get_object_or_404(Document, docalias__name=name, stream='ietf')
if doc.get_state_slug('draft') == "expired" or doc.get_state_slug('draft-iesg') == 'pub-req' :
raise Http404()
raise Http404
if not is_authorized_in_doc_stream(request.user, doc):
raise Http404()
raise Http404
target_state={
'iesg' : State.objects.get(type='draft-iesg',slug='pub-req'),
@ -614,7 +614,7 @@ def edit_info(request, name):
necessary and logging changes as document events."""
doc = get_object_or_404(Document, docalias__name=name)
if doc.get_state_slug() == "expired":
raise Http404()
raise Http404
login = request.user.person
@ -764,7 +764,7 @@ def request_resurrect(request, name):
"""Request resurrect of expired Internet Draft."""
doc = get_object_or_404(Document, docalias__name=name)
if doc.get_state_slug() != "expired":
raise Http404()
raise Http404
login = request.user.person
@ -788,7 +788,7 @@ def resurrect(request, name):
"""Resurrect expired Internet Draft."""
doc = get_object_or_404(Document, docalias__name=name)
if doc.get_state_slug() != "expired":
raise Http404()
raise Http404
login = request.user.person

View file

@ -25,7 +25,7 @@ Change document shepherd for {{ doc.name }}-{{ doc.rev }}
{% buttons %}
<button type="submit" class="btn btn-primary">Submit</button>
<a class="btn btn-default pull-right" href="{% url "doc_view" name=doc.name %}">Cancel</a>
<a class="btn btn-default pull-right" href="{% url "doc_view" name=doc.name %}">Back</a>
{% endbuttons %}
</form>
{% endblock %}

View file

@ -17,7 +17,7 @@ Change the document shepherd email for {{ doc.name }}-{{ doc.rev }}
<tr>
<td></td>
<td class="actions">
<a class="button" href="{% url "doc_view" name=doc.name %}">Cancel</a>
<a class="button" href="{% url "doc_view" name=doc.name %}">Back</a>
<input class="button" type="submit" value="Save"/>
</td>
</tr>

View file

@ -14,7 +14,7 @@
{% bootstrap_form form %}
{% buttons %}
<button type="submit" class="btn btn-primary">Submit</button>
<button type="submit" class="btn btn-primary">Save</button>
<a class="btn btn-default pull-right" href="{{ doc.get_absolute_url }}">Back</a>
{% endbuttons %}
</form>

View file

@ -26,7 +26,7 @@
{% bootstrap_form form %}
{% buttons %}
<input type="submit" class="btn btn-primary" value="Save">
<button type="submit" class="btn btn-primary">Save</button>
<a class="btn btn-default pull-right" href="{{ doc.get_absolute_url }}">Back</a>
{% endbuttons %}

View file

@ -13,7 +13,7 @@
{% csrf_token %}
{% bootstrap_form form %}
{% buttons %}
<button type="submit" class="btn btn-primary">Submit</button>
<button type="submit" class="btn btn-primary">Save</button>
<a class="btn btn-default pull-right" href="{{ doc.get_absolute_url }}">Back</a>
{% endbuttons %}
</form>

View file

@ -14,7 +14,7 @@
{% bootstrap_form form %}
{% buttons %}
<button type="submit" class="btn btn-primary">Submit</button>
<button type="submit" class="btn btn-primary">Save</button>
<a class="btn btn-default pull-right" href="{{ doc.get_absolute_url }}">Back</a>
{% endbuttons %}
</form>

View file

@ -9,8 +9,8 @@
{% bootstrap_messages %}
{% for prompt in prompts %}
<div class="alert alert-warning">{{ prompt }}</div>
{% for warning in warnings %}
<div class="alert alert-warning">{{ warning }}</div>
{% endfor %}
<form role="form" method="post">
@ -23,7 +23,4 @@
{% endbuttons %}
</form>
{% if prompts %}
{% endif %}
{% endblock %}

View file

@ -10,10 +10,7 @@ Shepherd writeup for {{ doc.canonical_name }}-{{ doc.rev }}
<pre>{{writeup}}</pre>
{% if can_edit %}
{% url "doc_edit_shepherd_writeup" name=doc.name as doc_edit_url %}
{% if doc_edit_url %}
<a class="btn btn-primary" href="{{doc_edit_url}}">Edit</a>
{% endif %}
<a class="btn btn-primary" href="{% url "doc_edit_shepherd_writeup" name=doc.name %}">Edit</a>
{% endif %}
<a class="btn btn-default pull-right" href="{% url "doc_view" name=doc.name %}">Back</a>