Changed a large number of test assertions to use assertContains() and removed separate, now unnecessary,status_code checks. Also changed many assertTrue(... in ...) to use assertIn().
- Legacy-Id: 16346
This commit is contained in:
parent
20c44a9e1a
commit
97a555936d
|
@ -112,8 +112,7 @@ class EditPositionTests(TestCase):
|
|||
discuss=" This is a discussion test. \n ",
|
||||
comment=" This is a test. \n ")
|
||||
)
|
||||
self.assertEqual(r.content, "Done")
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertContains(r, "Done")
|
||||
|
||||
pos = draft.latest_event(BallotPositionDocEvent, ad=ad)
|
||||
self.assertEqual(pos.pos.slug, "discuss")
|
||||
|
@ -733,13 +732,11 @@ class ApproveBallotTests(TestCase):
|
|||
# Only Secretariat can use this URL
|
||||
login_testing_unauthorized(self, "ad", url)
|
||||
r = self.client.get(url)
|
||||
self.assertEqual(r.status_code, 403)
|
||||
self.assertContains(r, "Restricted to role Secretariat")
|
||||
self.assertContains(r, "Restricted to role Secretariat", status_code=403)
|
||||
|
||||
# There are no downrefs, the page should say so
|
||||
login_testing_unauthorized(self, "secretary", url)
|
||||
r = self.client.get(url)
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertContains(r, "No downward references for")
|
||||
|
||||
# Add a downref, the page should ask if it should be added to the registry
|
||||
|
@ -747,7 +744,6 @@ class ApproveBallotTests(TestCase):
|
|||
d = [rdoc for rdoc in draft.relateddocument_set.all() if rel.is_approved_downref()]
|
||||
original_len = len(d)
|
||||
r = self.client.get(url)
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertContains(r, "normatively references rfc6666")
|
||||
|
||||
# POST with the downref checked
|
||||
|
|
|
@ -279,9 +279,9 @@ class ConflictReviewTests(TestCase):
|
|||
q = PyQuery(r.content)
|
||||
self.assertEqual(len(q('[type=submit]:contains("Send announcement")')), 1)
|
||||
if approve_type == 'appr-noprob':
|
||||
self.assertIn( 'IESG has no problem', ''.join(wrap(r.content,2**16)))
|
||||
self.assertContains(r, 'IESG has no problem')
|
||||
else:
|
||||
self.assertIn( 'NOT be published', ''.join(wrap(r.content,2**16)))
|
||||
self.assertContains(r, 'NOT be published')
|
||||
|
||||
# submit
|
||||
empty_outbox()
|
||||
|
@ -298,9 +298,9 @@ class ConflictReviewTests(TestCase):
|
|||
self.assertIn('ietf-announce@', outbox[0]['Cc'])
|
||||
self.assertIn('iana@', outbox[0]['Cc'])
|
||||
if approve_type == 'appr-noprob':
|
||||
self.assertIn( 'IESG has no problem', ''.join(wrap(str(outbox[0]),2**16)))
|
||||
self.assertContains(r, 'IESG has no problem')
|
||||
else:
|
||||
self.assertIn( 'NOT be published', ''.join(wrap(str(outbox[0]),2**16)))
|
||||
self.assertContains(r, 'NOT be published')
|
||||
|
||||
|
||||
def test_approve_reqnopub(self):
|
||||
|
|
|
@ -32,26 +32,20 @@ class Downref(TestCase):
|
|||
# normal - get the table without the "Add downref" button
|
||||
self.client.login(username="plain", password="plain+password")
|
||||
r = self.client.get(url)
|
||||
self.assertEqual(r.status_code, 200)
|
||||
content = unicontent(r)
|
||||
self.assertTrue('<h1>Downref registry</h1>' in content)
|
||||
self.assertFalse('Add downref' in content)
|
||||
self.assertContains(r, '<h1>Downref registry</h1>')
|
||||
self.assertNotContains(r, 'Add downref')
|
||||
|
||||
# secretariat - get the table with the "Add downref" button
|
||||
self.client.login(username='secretary', password='secretary+password')
|
||||
r = self.client.get(url)
|
||||
self.assertEqual(r.status_code, 200)
|
||||
content = unicontent(r)
|
||||
self.assertTrue('<h1>Downref registry</h1>' in content)
|
||||
self.assertTrue('Add downref' in content)
|
||||
self.assertContains(r, '<h1>Downref registry</h1>')
|
||||
self.assertContains(r, ('Add downref')
|
||||
|
||||
# area director - get the table with the "Add downref" button
|
||||
self.client.login(username='ad', password='ad+password')
|
||||
r = self.client.get(url)
|
||||
self.assertEqual(r.status_code, 200)
|
||||
content = unicontent(r)
|
||||
self.assertTrue('<h1>Downref registry</h1>' in content)
|
||||
self.assertTrue('Add downref' in content)
|
||||
self.assertContains(r, ('<h1>Downref registry</h1>')
|
||||
self.assertContains(r, ('Add downref')
|
||||
|
||||
def test_downref_registry_add(self):
|
||||
url = urlreverse('ietf.doc.views_downref.downref_registry_add')
|
||||
|
@ -60,42 +54,32 @@ class Downref(TestCase):
|
|||
# secretariat - get the form to add entries to the registry
|
||||
self.client.login(username='secretary', password='secretary+password')
|
||||
r = self.client.get(url)
|
||||
self.assertEqual(r.status_code, 200)
|
||||
content = unicontent(r)
|
||||
self.assertTrue('<h1>Add entry to the downref registry</h1>' in content)
|
||||
self.assertTrue('Save downref' in content)
|
||||
self.assertContains(r, ('<h1>Add entry to the downref registry</h1>')
|
||||
self.assertContains(r, ('Save downref')
|
||||
|
||||
# area director - get the form to add entries to the registry
|
||||
self.client.login(username='ad', password='ad+password')
|
||||
r = self.client.get(url)
|
||||
self.assertEqual(r.status_code, 200)
|
||||
content = unicontent(r)
|
||||
self.assertTrue('<h1>Add entry to the downref registry</h1>' in content)
|
||||
self.assertTrue('Save downref' in content)
|
||||
self.assertContains(r, ('<h1>Add entry to the downref registry</h1>')
|
||||
self.assertContains(r, ('Save downref')
|
||||
|
||||
# error - already in the downref registry
|
||||
r = self.client.post(url, dict(rfc=self.rfcalias.pk, drafts=(self.doc.pk, )))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
content = unicontent(r)
|
||||
self.assertTrue('Downref is already in the registry' in content)
|
||||
self.assertContains(r, ('Downref is already in the registry')
|
||||
|
||||
# error - source is not in an approved state
|
||||
r = self.client.get(url)
|
||||
self.assertEqual(r.status_code, 200)
|
||||
r = self.client.post(url, dict(rfc=self.rfcalias.pk, drafts=(self.draft.pk, )))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
content = unicontent(r)
|
||||
self.assertTrue('Draft is not yet approved' in content)
|
||||
self.assertContains(r, ('Draft is not yet approved')
|
||||
|
||||
# error - the target is not a normative reference of the source
|
||||
self.draft.set_state(State.objects.get(used=True, type="draft-iesg", slug="pub"))
|
||||
r = self.client.get(url)
|
||||
self.assertEqual(r.status_code, 200)
|
||||
r = self.client.post(url, dict(rfc=self.rfcalias.pk, drafts=(self.draft.pk, )))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
content = unicontent(r)
|
||||
self.assertTrue('There does not seem to be a normative reference to RFC' in content)
|
||||
self.assertTrue('Save downref anyway' in content)
|
||||
self.assertContains(r, ('There does not seem to be a normative reference to RFC')
|
||||
self.assertContains(r, ('Save downref anyway')
|
||||
|
||||
# normal - approve the document so the downref is now okay
|
||||
RelatedDocument.objects.create(source=self.draft, target=self.rfcalias, relationship_id='refnorm')
|
||||
|
@ -108,9 +92,7 @@ class Downref(TestCase):
|
|||
self.assertEqual(r.status_code, 302)
|
||||
newurl = urlreverse('ietf.doc.views_downref.downref_registry')
|
||||
r = self.client.get(newurl)
|
||||
self.assertEqual(r.status_code, 200)
|
||||
content = unicontent(r)
|
||||
self.assertTrue('<a href="/doc/draft-ietf-mars-test' in content)
|
||||
self.assertContains(r, ('<a href="/doc/draft-ietf-mars-test')
|
||||
self.assertTrue(RelatedDocument.objects.filter(source=self.draft, target=self.rfcalias, relationship_id='downref-approval'))
|
||||
self.assertEqual(self.draft.docevent_set.count(), draft_de_count_before + 1)
|
||||
self.assertEqual(self.rfc.docevent_set.count(), rfc_de_count_before + 1)
|
||||
|
|
|
@ -265,8 +265,8 @@ class StatusChangeTests(TestCase):
|
|||
q = PyQuery(r.content)
|
||||
self.assertEqual(len(q('form.edit-last-call-text')),1)
|
||||
|
||||
self.assertTrue( 'RFC9999 from Proposed Standard to Internet Standard' in ''.join(wrap(r.content,2**16)))
|
||||
self.assertTrue( 'RFC9998 from Informational to Historic' in ''.join(wrap(r.content,2**16)))
|
||||
self.assertContains(r, 'RFC9999 from Proposed Standard to Internet Standard')
|
||||
self.assertContains(r, 'RFC9998 from Informational to Historic')
|
||||
|
||||
# save
|
||||
r = self.client.post(url,dict(last_call_text="Bogus last call text",save_last_call_text="1"))
|
||||
|
@ -278,17 +278,17 @@ class StatusChangeTests(TestCase):
|
|||
# reset
|
||||
r = self.client.post(url,dict(regenerate_last_call_text="1"))
|
||||
self.assertEqual(r.status_code,200)
|
||||
self.assertTrue( 'RFC9999 from Proposed Standard to Internet Standard' in ''.join(wrap(r.content,2**16)))
|
||||
self.assertTrue( 'RFC9998 from Informational to Historic' in ''.join(wrap(r.content,2**16)))
|
||||
self.assertContains(r, 'RFC9999 from Proposed Standard to Internet Standard')
|
||||
self.assertContains(r, 'RFC9998 from Informational to Historic')
|
||||
|
||||
# request last call
|
||||
messages_before = len(outbox)
|
||||
r = self.client.post(url,dict(last_call_text='stuff',send_last_call_request='Save+and+Request+Last+Call'))
|
||||
self.assertEqual(r.status_code,200)
|
||||
self.assertTrue( 'Last call requested' in ''.join(wrap(r.content,2**16)))
|
||||
self.assertContains(r, 'Last call requested')
|
||||
self.assertEqual(len(outbox), messages_before + 1)
|
||||
self.assertTrue('Last Call:' in outbox[-1]['Subject'])
|
||||
self.assertTrue('Last Call Request has been submitted' in ''.join(wrap(str(outbox[-1]),2**16)))
|
||||
self.assertTrue('Last Call Request has been submitted' in ''.join(wrap(outbox[-1].as_string()),2**16)))
|
||||
|
||||
|
||||
def test_approve(self):
|
||||
|
@ -310,8 +310,8 @@ class StatusChangeTests(TestCase):
|
|||
self.assertEqual(len(q('[type=submit]:contains("Send announcement")')), 1)
|
||||
# There should be two messages to edit
|
||||
self.assertEqual(q('input#id_form-TOTAL_FORMS').val(),'2')
|
||||
self.assertTrue( '(rfc9999) to Internet Standard' in ''.join(wrap(r.content,2**16)))
|
||||
self.assertTrue( '(rfc9998) to Historic' in ''.join(wrap(r.content,2**16)))
|
||||
self.assertContains(r, '(rfc9999) to Internet Standard')
|
||||
self.assertContains(r, '(rfc9998) to Historic')
|
||||
|
||||
# submit
|
||||
messages_before = len(outbox)
|
||||
|
@ -328,10 +328,10 @@ class StatusChangeTests(TestCase):
|
|||
self.assertTrue('Action:' in outbox[-1]['Subject'])
|
||||
self.assertTrue('ietf-announce' in outbox[-1]['To'])
|
||||
self.assertTrue('rfc-editor' in outbox[-1]['Cc'])
|
||||
self.assertTrue('(rfc9998) to Historic' in ''.join(wrap(str(outbox[-1])+str(outbox[-2]),2**16)))
|
||||
self.assertTrue('(rfc9999) to Internet Standard' in ''.join(wrap(str(outbox[-1])+str(outbox[-2]),2**16)))
|
||||
self.assertTrue('(rfc9998) to Historic' in ''.join(wrap(outbox[-1].as_string()+outbox[-2].as_string(), 2**16)))
|
||||
self.assertTrue('(rfc9999) to Internet Standard' in ''.join(wrap(outbox[-1].as_string()+outbox[-2].as_string(),2**16)))
|
||||
|
||||
self.assertTrue(doc.latest_event(DocEvent,type="added_comment").desc.startswith('The following approval message was sent'))
|
||||
self.assertTrue(doc.latest_event(DocEvent,type="added_comment").desc.startswith('The following approval message was sent'))
|
||||
|
||||
def test_edit_relations(self):
|
||||
doc = Document.objects.get(name='status-change-imaginary-mid-review')
|
||||
|
|
|
@ -1153,7 +1153,7 @@ expand-ames-chairs@virtual.ietf.org mars_chair@ietf
|
|||
url = urlreverse('ietf.group.views.email_aliases', kwargs=dict(group_type="rg"))
|
||||
r = self.client.get(url)
|
||||
self.assertEqual(r.status_code,200)
|
||||
self.assertFalse('mars-ads@' in unicontent(r))
|
||||
self.assertNotContains(r, 'mars-ads@')
|
||||
|
||||
def testExpansions(self):
|
||||
url = urlreverse('ietf.group.views.email', kwargs=dict(acronym="mars"))
|
||||
|
@ -1173,7 +1173,7 @@ class AjaxTests(TestCase):
|
|||
r = self.client.get(urlreverse('ietf.group.views.group_menu_data'))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
|
||||
parents = json.loads(r.content)
|
||||
parents = r.json()
|
||||
|
||||
area = Group.objects.get(type="area", acronym="farfut")
|
||||
self.assertTrue(str(area.id) in parents)
|
||||
|
|
|
@ -39,8 +39,8 @@ class ReviewTests(TestCase):
|
|||
urlreverse(ietf.group.views.review_requests, kwargs={ 'acronym': group.acronym , 'group_type': group.type_id})]:
|
||||
r = self.client.get(url)
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertIn(review_req.doc.name, unicontent(r))
|
||||
self.assertIn(assignment.reviewer.person.__unicode__(), unicontent(r))
|
||||
self.assertContains(r, review_req.doc.name)
|
||||
self.assertContains(r, str(assignment.reviewer.person))
|
||||
|
||||
url = urlreverse(ietf.group.views.review_requests, kwargs={ 'acronym': group.acronym })
|
||||
|
||||
|
@ -151,29 +151,29 @@ class ReviewTests(TestCase):
|
|||
urlreverse(ietf.group.views.reviewer_overview, kwargs={ 'acronym': group.acronym, 'group_type': group.type_id })]:
|
||||
r = self.client.get(url)
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertIn(str(reviewer), unicontent(r))
|
||||
self.assertIn(review_req1.doc.name, unicontent(r))
|
||||
self.assertContains(r, str(reviewer))
|
||||
self.assertContains(r, review_req1.doc.name)
|
||||
# without a login, reason for being unavailable should not be seen
|
||||
self.assertNotIn("Availability", unicontent(r))
|
||||
self.assertNotContains(r, "Availability")
|
||||
|
||||
url = urlreverse(ietf.group.views.reviewer_overview, kwargs={ 'acronym': group.acronym })
|
||||
self.client.login(username="plain", password="plain+password")
|
||||
r = self.client.get(url)
|
||||
self.assertEqual(r.status_code, 200)
|
||||
# not on review team, should not see reason for being unavailable
|
||||
self.assertNotIn("Availability", unicontent(r))
|
||||
self.assertNotContains(r, "Availability")
|
||||
|
||||
self.client.login(username="reviewer", password="reviewer+password")
|
||||
r = self.client.get(url)
|
||||
self.assertEqual(r.status_code, 200)
|
||||
# review team members can see reason for being unavailable
|
||||
self.assertIn("Availability", unicontent(r))
|
||||
self.assertContains(r, "Availability")
|
||||
|
||||
self.client.login(username="secretary", password="secretary+password")
|
||||
r = self.client.get(url)
|
||||
self.assertEqual(r.status_code, 200)
|
||||
# secretariat can see reason for being unavailable
|
||||
self.assertIn("Availability", unicontent(r))
|
||||
self.assertContains(r, "Availability")
|
||||
|
||||
def test_manage_review_requests(self):
|
||||
group = ReviewTeamFactory()
|
||||
|
@ -211,9 +211,7 @@ class ReviewTests(TestCase):
|
|||
|
||||
"action": "save",
|
||||
})
|
||||
self.assertEqual(r.status_code, 200)
|
||||
content = unicontent(r).lower()
|
||||
self.assertTrue("2 requests opened" in content)
|
||||
self.assertContains(r, "2 requests opened")
|
||||
|
||||
r = self.client.post(unassigned_url, {
|
||||
"reviewrequest": [str(review_req1.pk),str(review_req2.pk),str(review_req3.pk)],
|
||||
|
|
|
@ -9,6 +9,7 @@ from pyquery import PyQuery
|
|||
|
||||
from django.conf import settings
|
||||
from django.urls import reverse as urlreverse
|
||||
from django.utils.encoding import force_bytes
|
||||
|
||||
import debug # pyflakes:ignore
|
||||
|
||||
|
@ -63,7 +64,7 @@ class IESGTests(TestCase):
|
|||
draft.group.save()
|
||||
r = self.client.get(url)
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertFalse(m.desc in unicontent(r))
|
||||
self.assertNotContains(r, m.desc)
|
||||
|
||||
|
||||
def test_review_decisions(self):
|
||||
|
@ -314,13 +315,13 @@ class IESGAgendaTests(TestCase):
|
|||
|
||||
for k, d in self.telechat_docs.items():
|
||||
if d.type_id == "charter":
|
||||
self.assertTrue(d.group.name in unicontent(r), "%s '%s' not in response" % (k, d.group.name))
|
||||
self.assertTrue(d.group.acronym in unicontent(r), "%s '%s' acronym not in response" % (k, d.group.acronym))
|
||||
self.assertContains(r, d.group.name, "%s '%s' not in response" % (k, d.group.name))
|
||||
self.assertContains(r, d.group.acronym, "%s '%s' acronym not in response" % (k, d.group.acronym))
|
||||
else:
|
||||
self.assertTrue(d.name in unicontent(r), "%s '%s' not in response" % (k, d.name))
|
||||
self.assertTrue(d.title in unicontent(r), "%s '%s' title not in response" % (k, d.title))
|
||||
self.assertContains(r, d.name, "%s '%s' not in response" % (k, d.name))
|
||||
self.assertContains(r, d.title, "%s '%s' title not in response" % (k, d.title))
|
||||
|
||||
self.assertTrue(json.loads(r.content))
|
||||
self.assertTrue(r.json())
|
||||
|
||||
def test_agenda(self):
|
||||
r = self.client.get(urlreverse("ietf.iesg.views.agenda"))
|
||||
|
@ -328,11 +329,11 @@ class IESGAgendaTests(TestCase):
|
|||
|
||||
for k, d in self.telechat_docs.items():
|
||||
if d.type_id == "charter":
|
||||
self.assertTrue(d.group.name in unicontent(r), "%s '%s' not in response" % (k, d.group.name))
|
||||
self.assertTrue(d.group.acronym in unicontent(r), "%s '%s' acronym not in response" % (k, d.group.acronym))
|
||||
self.assertContains(r, d.group.name, "%s '%s' not in response" % (k, d.group.name))
|
||||
self.assertContains(r, d.group.acronym, "%s '%s' acronym not in response" % (k, d.group.acronym))
|
||||
else:
|
||||
self.assertTrue(d.name in unicontent(r), "%s '%s' not in response" % (k, d.name))
|
||||
self.assertTrue(d.title in unicontent(r), "%s '%s' title not in response" % (k, d.title))
|
||||
self.assertContains(r, d.name, "%s '%s' not in response" % (k, d.name))
|
||||
self.assertContains(r, d.title, "%s '%s' title not in response" % (k, d.title))
|
||||
|
||||
def test_agenda_txt(self):
|
||||
r = self.client.get(urlreverse("ietf.iesg.views.agenda_txt"))
|
||||
|
@ -340,11 +341,11 @@ class IESGAgendaTests(TestCase):
|
|||
|
||||
for k, d in self.telechat_docs.items():
|
||||
if d.type_id == "charter":
|
||||
self.assertTrue(d.group.name in unicontent(r), "%s '%s' not in response" % (k, d.group.name))
|
||||
self.assertTrue(d.group.acronym in unicontent(r), "%s '%s' acronym not in response" % (k, d.group.acronym))
|
||||
self.assertContains(r, d.group.name, "%s '%s' not in response" % (k, d.group.name))
|
||||
self.assertContains(r, d.group.acronym, "%s '%s' acronym not in response" % (k, d.group.acronym))
|
||||
else:
|
||||
self.assertTrue(d.name in unicontent(r), "%s '%s' not in response" % (k, d.name))
|
||||
self.assertTrue(d.title in unicontent(r), "%s '%s' title not in response" % (k, d.title))
|
||||
self.assertContains(r, d.name, "%s '%s' not in response" % (k, d.name))
|
||||
self.assertContains(r, d.title, "%s '%s' title not in response" % (k, d.title))
|
||||
|
||||
def test_agenda_scribe_template(self):
|
||||
r = self.client.get(urlreverse("ietf.iesg.views.agenda_scribe_template"))
|
||||
|
@ -354,8 +355,8 @@ class IESGAgendaTests(TestCase):
|
|||
if d.type_id == "charter":
|
||||
continue # scribe template doesn't contain chartering info
|
||||
|
||||
self.assertTrue(d.name in unicontent(r), "%s '%s' not in response" % (k, d.name))
|
||||
self.assertTrue(d.title in unicontent(r), "%s '%s' title not in response" % (k, d.title))
|
||||
self.assertContains(r, d.name, "%s '%s' not in response" % (k, d.name))
|
||||
self.assertContains(r, d.title, "%s '%s' title not in response" % (k, d.title))
|
||||
|
||||
def test_agenda_moderator_package(self):
|
||||
url = urlreverse("ietf.iesg.views.agenda_moderator_package")
|
||||
|
@ -365,17 +366,17 @@ class IESGAgendaTests(TestCase):
|
|||
|
||||
for k, d in self.telechat_docs.items():
|
||||
if d.type_id == "charter":
|
||||
self.assertTrue(d.group.name in unicontent(r), "%s '%s' not in response" % (k, d.group.name))
|
||||
self.assertTrue(d.group.acronym in unicontent(r), "%s '%s' acronym not in response" % (k, d.group.acronym))
|
||||
self.assertContains(r, d.group.name, "%s '%s' not in response" % (k, d.group.name))
|
||||
self.assertContains(r, d.group.acronym, "%s '%s' acronym not in response" % (k, d.group.acronym))
|
||||
else:
|
||||
if d.type_id == "draft" and d.name == "draft-ietf-mars-test":
|
||||
self.assertTrue(d.name in unicontent(r), "%s '%s' not in response" % (k, d.name))
|
||||
self.assertTrue(d.title in unicontent(r), "%s '%s' title not in response" % (k, d.title))
|
||||
self.assertTrue("Has downref: Yes" in unicontent(r), "%s downref not in response" % (k, ))
|
||||
self.assertTrue("Add rfc6666" in unicontent(r), "%s downref not in response" % (k, ))
|
||||
self.assertContains(r, d.name, "%s '%s' not in response" % (k, d.name))
|
||||
self.assertContains(r, d.title, "%s '%s' title not in response" % (k, d.title))
|
||||
self.assertContains(r, "Has downref: Yes", "%s downref not in response" % (k, ))
|
||||
self.assertContains(r, "Add rfc6666", "%s downref not in response" % (k, ))
|
||||
else:
|
||||
self.assertTrue(d.name in unicontent(r), "%s '%s' not in response" % (k, d.name))
|
||||
self.assertTrue(d.title in unicontent(r), "%s '%s' title not in response" % (k, d.title))
|
||||
self.assertContains(r, d.name, "%s '%s' not in response" % (k, d.name))
|
||||
self.assertContains(r, d.title, "%s '%s' title not in response" % (k, d.title))
|
||||
|
||||
def test_agenda_package(self):
|
||||
url = urlreverse("ietf.iesg.views.agenda_package")
|
||||
|
@ -385,11 +386,11 @@ class IESGAgendaTests(TestCase):
|
|||
|
||||
for k, d in self.telechat_docs.items():
|
||||
if d.type_id == "charter":
|
||||
self.assertTrue(d.group.name in unicontent(r), "%s '%s' not in response" % (k, d.group.name, ))
|
||||
self.assertTrue(d.group.acronym in unicontent(r), "%s '%s' acronym not in response" % (k, d.group.acronym, ))
|
||||
self.assertContains(r, d.group.name, "%s '%s' not in response" % (k, d.group.name, ))
|
||||
self.assertContains(r, d.group.acronym, "%s '%s' acronym not in response" % (k, d.group.acronym, ))
|
||||
else:
|
||||
self.assertTrue(d.name in unicontent(r), "%s '%s' not in response" % (k, d.name, ))
|
||||
self.assertTrue(d.title in unicontent(r), "%s '%s' title not in response" % (k, d.title, ))
|
||||
self.assertContains(r, d.name, "%s '%s' not in response" % (k, d.name, ))
|
||||
self.assertContains(r, d.title, "%s '%s' title not in response" % (k, d.title, ))
|
||||
|
||||
def test_agenda_documents_txt(self):
|
||||
url = urlreverse("ietf.iesg.views.agenda_documents_txt")
|
||||
|
@ -397,7 +398,7 @@ class IESGAgendaTests(TestCase):
|
|||
self.assertEqual(r.status_code, 200)
|
||||
|
||||
for k, d in self.telechat_docs.items():
|
||||
self.assertTrue(d.name in unicontent(r), "%s '%s' not in response" % (k, d.name, ))
|
||||
self.assertContains(r, d.name, "%s '%s' not in response" % (k, d.name, ))
|
||||
|
||||
def test_agenda_documents(self):
|
||||
url = urlreverse("ietf.iesg.views.agenda_documents")
|
||||
|
@ -405,8 +406,8 @@ class IESGAgendaTests(TestCase):
|
|||
self.assertEqual(r.status_code, 200)
|
||||
|
||||
for k, d in self.telechat_docs.items():
|
||||
self.assertTrue(d.name in unicontent(r), "%s '%s' not in response" % (k, d.name, ))
|
||||
self.assertTrue(d.title in unicontent(r), "%s '%s' title not in response" % (k, d.title, ))
|
||||
self.assertContains(r, d.name, "%s '%s' not in response" % (k, d.name, ))
|
||||
self.assertContains(r, d.title, "%s '%s' title not in response" % (k, d.title, ))
|
||||
|
||||
def test_past_documents(self):
|
||||
url = urlreverse("ietf.iesg.views.past_documents")
|
||||
|
@ -457,19 +458,21 @@ class IESGAgendaTests(TestCase):
|
|||
|
||||
import tarfile, io
|
||||
|
||||
tar = tarfile.open(None, fileobj=io.StringIO(r.content))
|
||||
tar = tarfile.open(None, fileobj=io.BytesIO(r.content))
|
||||
names = tar.getnames()
|
||||
self.assertIn(d1_filename, names)
|
||||
self.assertNotIn(d2_filename, names)
|
||||
self.assertIn("manifest.txt", names)
|
||||
|
||||
f = tar.extractfile(d1_filename)
|
||||
self.assertEqual(f.read(), "test content")
|
||||
self.assertEqual(f.read(), b"test content")
|
||||
|
||||
f = tar.extractfile("manifest.txt")
|
||||
lines = list(f.readlines())
|
||||
self.assertTrue("Included" in [l for l in lines if d1_filename in l][0])
|
||||
self.assertTrue("Not found" in [l for l in lines if d2_filename in l][0])
|
||||
d1fn = force_bytes(d1_filename)
|
||||
d2fn = force_bytes(d2_filename)
|
||||
self.assertTrue(b"Included" in [l for l in lines if d1fn in l][0])
|
||||
self.assertTrue(b"Not found" in [l for l in lines if d2fn in l][0])
|
||||
|
||||
def test_admin_change(self):
|
||||
draft = Document.objects.get(name="draft-ietf-mars-test")
|
||||
|
@ -522,8 +525,9 @@ class RescheduleOnAgendaTests(TestCase):
|
|||
# agenda docs page
|
||||
r = self.client.get(url)
|
||||
self.assertEqual(r.status_code, 200)
|
||||
d_header_pos = r.content.find("IESG telechat %s" % d.isoformat())
|
||||
draft_pos = unicontent(r)[d_header_pos:].find(draft.name)
|
||||
content = unicontent(r)
|
||||
d_header_pos = content.find("IESG telechat %s" % d.isoformat())
|
||||
draft_pos = content[d_header_pos:].find(draft.name)
|
||||
self.assertTrue(draft_pos>0)
|
||||
|
||||
self.assertTrue(draft.latest_event(TelechatDocEvent, "scheduled_for_telechat"))
|
||||
|
|
|
@ -98,7 +98,7 @@ class IetfAuthTests(TestCase):
|
|||
|
||||
def extract_confirm_url(self, confirm_email):
|
||||
# dig out confirm_email link
|
||||
msg = confirm_email.get_payload(decode=True)
|
||||
msg = confirm_email.get_payload(decode=True).decode(confirm_email.get_content_charset())
|
||||
line_start = "http"
|
||||
confirm_url = None
|
||||
for line in msg.split("\n"):
|
||||
|
@ -131,7 +131,7 @@ class IetfAuthTests(TestCase):
|
|||
empty_outbox()
|
||||
r = self.client.post(url, { 'email': email })
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertIn("Account creation failed", unicontent(r))
|
||||
self.assertContains(r, "Account creation failed")
|
||||
|
||||
def register_and_verify(self, email):
|
||||
url = urlreverse(ietf.ietfauth.views.create_account)
|
||||
|
@ -140,7 +140,7 @@ class IetfAuthTests(TestCase):
|
|||
empty_outbox()
|
||||
r = self.client.post(url, { 'email': email })
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertIn("Account request received", unicontent(r))
|
||||
self.assertContains(r, "Account request received")
|
||||
self.assertEqual(len(outbox), 1)
|
||||
|
||||
# go to confirm page
|
||||
|
@ -172,11 +172,11 @@ class IetfAuthTests(TestCase):
|
|||
|
||||
r = self.client.get(urlreverse(ietf.ietfauth.views.add_account_whitelist))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertIn("Add a whitelist entry", unicontent(r))
|
||||
self.assertContains(r, "Add a whitelist entry")
|
||||
|
||||
r = self.client.post(urlreverse(ietf.ietfauth.views.add_account_whitelist), {"email": email})
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertIn("Whitelist entry creation successful", unicontent(r))
|
||||
self.assertContains(r, "Whitelist entry creation successful")
|
||||
|
||||
# log out
|
||||
r = self.client.get(urlreverse(django.contrib.auth.views.logout))
|
||||
|
@ -590,19 +590,19 @@ class IetfAuthTests(TestCase):
|
|||
# missing apikey
|
||||
r = self.client.post(url, {'dummy':'dummy',})
|
||||
self.assertEqual(r.status_code, 400)
|
||||
self.assertIn('Missing apikey parameter', unicontent(r))
|
||||
self.assertContains(r, 'Missing apikey parameter')
|
||||
|
||||
# invalid apikey
|
||||
r = self.client.post(url, {'apikey':BAD_KEY, 'dummy':'dummy',})
|
||||
self.assertEqual(r.status_code, 400)
|
||||
self.assertIn('Invalid apikey', unicontent(r))
|
||||
self.assertContains(r, 'Invalid apikey')
|
||||
|
||||
# too long since regular login
|
||||
person.user.last_login = datetime.datetime.now() - datetime.timedelta(days=settings.UTILS_APIKEY_GUI_LOGIN_LIMIT_DAYS+1)
|
||||
person.user.save()
|
||||
r = self.client.post(url, {'apikey':key.hash(), 'dummy':'dummy',})
|
||||
self.assertEqual(r.status_code, 400)
|
||||
self.assertIn('Too long since last regular login', unicontent(r))
|
||||
self.assertContains(r, 'Too long since last regular login')
|
||||
person.user.last_login = datetime.datetime.now()
|
||||
person.user.save()
|
||||
|
||||
|
@ -610,7 +610,7 @@ class IetfAuthTests(TestCase):
|
|||
key2 = PersonalApiKey.objects.create(person=person, endpoint='/')
|
||||
r = self.client.post(url, {'apikey':key2.hash(), 'dummy':'dummy',})
|
||||
self.assertEqual(r.status_code, 400)
|
||||
self.assertIn('Apikey endpoint mismatch', unicontent(r))
|
||||
self.assertContains(r, 'Apikey endpoint mismatch')
|
||||
key2.delete()
|
||||
|
||||
def test_send_apikey_report(self):
|
||||
|
|
|
@ -476,7 +476,7 @@ class IprTests(TestCase):
|
|||
self.assertContains(r, 'Private comment')
|
||||
self.client.logout()
|
||||
r = self.client.get(url)
|
||||
self.assertFalse('Private comment' in unicontent(r))
|
||||
self.assertNotContains(r, 'Private comment')
|
||||
|
||||
def test_addemail(self):
|
||||
ipr = HolderIprDisclosureFactory()
|
||||
|
|
|
@ -376,7 +376,7 @@ class LiaisonModelForm(BetterModelForm):
|
|||
if created:
|
||||
DocAlias.objects.create(name=attach.name).docs.add(attach)
|
||||
LiaisonStatementAttachment.objects.create(statement=self.instance,document=attach)
|
||||
attach_file = open(os.path.join(settings.LIAISON_ATTACH_PATH, attach.name + extension), 'w')
|
||||
attach_file = open(os.path.join(settings.LIAISON_ATTACH_PATH, attach.name + extension), 'wb')
|
||||
attach_file.write(attached_file.read())
|
||||
attach_file.close()
|
||||
|
||||
|
|
|
@ -105,11 +105,11 @@ class MeetingTests(TestCase):
|
|||
self.assertEqual(r.status_code, 200)
|
||||
q = PyQuery(r.content)
|
||||
agenda_content = q("#content").html()
|
||||
self.assertTrue(session.group.acronym in agenda_content)
|
||||
self.assertTrue(session.group.name in agenda_content)
|
||||
self.assertTrue(session.group.parent.acronym.upper() in agenda_content)
|
||||
self.assertTrue(slot.location.name in agenda_content)
|
||||
self.assertTrue(time_interval in agenda_content)
|
||||
self.assertIn(session.group.acronym, agenda_content)
|
||||
self.assertIn(session.group.name, agenda_content)
|
||||
self.assertIn(session.group.parent.acronym.upper(), agenda_content)
|
||||
self.assertIn(slot.location.name, agenda_content)
|
||||
self.assertIn(time_interval, agenda_content)
|
||||
|
||||
# plain
|
||||
time_interval = "%s-%s" % (slot.time.strftime("%H:%M").lstrip("0"), (slot.time + slot.duration).strftime("%H:%M").lstrip("0"))
|
||||
|
@ -118,11 +118,11 @@ class MeetingTests(TestCase):
|
|||
self.assertEqual(r.status_code, 200)
|
||||
q = PyQuery(r.content)
|
||||
agenda_content = q("#content").html()
|
||||
self.assertTrue(session.group.acronym in agenda_content)
|
||||
self.assertTrue(session.group.name in agenda_content)
|
||||
self.assertTrue(session.group.parent.acronym.upper() in agenda_content)
|
||||
self.assertTrue(slot.location.name in agenda_content)
|
||||
self.assertTrue(time_interval in agenda_content)
|
||||
self.assertIn(session.group.acronym, agenda_content)
|
||||
self.assertIn(session.group.name, agenda_content)
|
||||
self.assertIn(session.group.parent.acronym.upper(), agenda_content)
|
||||
self.assertIn(slot.location.name, agenda_content)
|
||||
self.assertIn(time_interval, agenda_content)
|
||||
|
||||
# Make sure there's a frame for the agenda and it points to the right place
|
||||
self.assertTrue(any([session.materials.get(type='agenda').href() in x.attrib["data-src"] for x in q('tr div.modal-body div.frame')]))
|
||||
|
@ -133,7 +133,6 @@ class MeetingTests(TestCase):
|
|||
|
||||
# future meeting, no agenda
|
||||
r = self.client.get(urlreverse("ietf.meeting.views.agenda", kwargs=dict(num=future_meeting.number)))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertContains(r, "There is no agenda available yet.")
|
||||
self.assertTemplateUsed(r, 'meeting/no-agenda.html')
|
||||
|
||||
|
@ -144,20 +143,18 @@ class MeetingTests(TestCase):
|
|||
r = self.client.get(urlreverse("ietf.meeting.views.agenda", kwargs=dict(num=meeting.number, ext=".txt")))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
agenda_content = r.content
|
||||
self.assertTrue(session.group.acronym in agenda_content)
|
||||
self.assertTrue(session.group.name in agenda_content)
|
||||
self.assertTrue(session.group.parent.acronym.upper() in agenda_content)
|
||||
self.assertTrue(slot.location.name in agenda_content)
|
||||
self.assertIn(session.group.acronym, agenda_content)
|
||||
self.assertIn(session.group.name, agenda_content)
|
||||
self.assertIn(session.group.parent.acronym.upper(), agenda_content)
|
||||
self.assertIn(slot.location.name, agenda_content)
|
||||
|
||||
self.assertTrue(time_interval in agenda_content)
|
||||
self.assertIn(time_interval, agenda_content)
|
||||
|
||||
r = self.client.get(urlreverse("ietf.meeting.views.agenda", kwargs=dict(num=meeting.number,name=meeting.unofficial_schedule.name,owner=meeting.unofficial_schedule.owner.email())))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertContains(r, 'not the official schedule')
|
||||
|
||||
# future meeting, no agenda
|
||||
r = self.client.get(urlreverse("ietf.meeting.views.agenda", kwargs=dict(num=future_meeting.number, ext=".txt")))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertContains(r, "There is no agenda available yet.")
|
||||
self.assertTemplateUsed(r, 'meeting/no-agenda.txt')
|
||||
|
||||
|
@ -165,48 +162,42 @@ class MeetingTests(TestCase):
|
|||
r = self.client.get(urlreverse("ietf.meeting.views.agenda", kwargs=dict(num=meeting.number, ext=".csv")))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
agenda_content = r.content
|
||||
self.assertTrue(session.group.acronym in agenda_content)
|
||||
self.assertTrue(session.group.name in agenda_content)
|
||||
self.assertTrue(session.group.parent.acronym.upper() in agenda_content)
|
||||
self.assertTrue(slot.location.name in agenda_content)
|
||||
self.assertIn(session.group.acronym, agenda_content)
|
||||
self.assertIn(session.group.name, agenda_content)
|
||||
self.assertIn(session.group.parent.acronym.upper(), agenda_content)
|
||||
self.assertIn(slot.location.name, agenda_content)
|
||||
|
||||
self.assertContains(r, session.materials.get(type='agenda').uploaded_filename)
|
||||
self.assertContains(r, session.materials.filter(type='slides').exclude(states__type__slug='slides',states__slug='deleted').first().uploaded_filename)
|
||||
self.assertFalse(session.materials.filter(type='slides',states__type__slug='slides',states__slug='deleted').first().uploaded_filename in unicontent(r))
|
||||
self.assertNotContains(r, session.materials.filter(type='slides',states__type__slug='slides',states__slug='deleted').first().uploaded_filename)
|
||||
|
||||
# iCal
|
||||
r = self.client.get(urlreverse("ietf.meeting.views.ical_agenda", kwargs=dict(num=meeting.number))
|
||||
+ "?" + session.group.parent.acronym.upper())
|
||||
self.assertEqual(r.status_code, 200)
|
||||
agenda_content = r.content
|
||||
self.assertTrue(session.group.acronym in agenda_content)
|
||||
self.assertTrue(session.group.name in agenda_content)
|
||||
self.assertTrue(slot.location.name in agenda_content)
|
||||
self.assertTrue("BEGIN:VTIMEZONE" in agenda_content)
|
||||
self.assertTrue("END:VTIMEZONE" in agenda_content)
|
||||
self.assertContains(r, session.group.acronym)
|
||||
self.assertContains(r, session.group.name)
|
||||
self.assertContains(r, slot.location.name)
|
||||
self.assertContains(r, "BEGIN:VTIMEZONE")
|
||||
self.assertContains(r, "END:VTIMEZONE")
|
||||
|
||||
self.assertContains(r, session.agenda().href())
|
||||
self.assertContains(r, session.materials.filter(type='slides').exclude(states__type__slug='slides',states__slug='deleted').first().href())
|
||||
# TODO - the ics view uses .all on a queryset in a view so it's showing the deleted slides.
|
||||
#self.assertFalse(session.materials.filter(type='slides',states__type__slug='slides',states__slug='deleted').first().get_absolute_url() in unicontent(r))
|
||||
#self.assertNotContains(r, session.materials.filter(type='slides',states__type__slug='slides',states__slug='deleted').first().get_absolute_url())
|
||||
|
||||
# week view
|
||||
r = self.client.get(urlreverse("ietf.meeting.views.week_view", kwargs=dict(num=meeting.number)))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
agenda_content = unicontent(r)
|
||||
self.assertNotIn('CANCELLED',agenda_content)
|
||||
self.assertTrue(session.group.acronym in agenda_content)
|
||||
self.assertTrue(slot.location.name in agenda_content)
|
||||
self.assertNotContains(r, 'CANCELLED')
|
||||
self.assertContains(r, session.group.acronym)
|
||||
self.assertContains(r, slot.location.name)
|
||||
|
||||
# week view with a cancelled session
|
||||
session.status_id='canceled'
|
||||
session.save()
|
||||
r = self.client.get(urlreverse("ietf.meeting.views.week_view", kwargs=dict(num=meeting.number)))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
agenda_content = unicontent(r)
|
||||
self.assertIn('CANCELLED',agenda_content)
|
||||
self.assertTrue(session.group.acronym in agenda_content)
|
||||
self.assertTrue(slot.location.name in agenda_content)
|
||||
self.assertContains(r, 'CANCELLED')
|
||||
self.assertContains(r, session.group.acronym)
|
||||
self.assertContains(r, slot.location.name)
|
||||
|
||||
def test_agenda_current_audio(self):
|
||||
date = datetime.date.today()
|
||||
|
@ -226,7 +217,7 @@ class MeetingTests(TestCase):
|
|||
url = urlreverse("ietf.meeting.views.agenda_by_room",kwargs=dict(num=meeting.number,name=meeting.unofficial_schedule.name,owner=meeting.unofficial_schedule.owner.email()))
|
||||
r = self.client.get(url)
|
||||
self.assertTrue(all([x in unicontent(r) for x in ['mars','Test Room',]]))
|
||||
self.assertFalse('IESG Breakfast' in unicontent(r))
|
||||
self.assertNotContains(r, 'IESG Breakfast')
|
||||
|
||||
def test_agenda_by_type(self):
|
||||
meeting = make_meeting_test_data()
|
||||
|
@ -239,7 +230,7 @@ class MeetingTests(TestCase):
|
|||
url = urlreverse("ietf.meeting.views.agenda_by_type",kwargs=dict(num=meeting.number,name=meeting.unofficial_schedule.name,owner=meeting.unofficial_schedule.owner.email()))
|
||||
r = self.client.get(url)
|
||||
self.assertTrue(all([x in unicontent(r) for x in ['mars','Test Room',]]))
|
||||
self.assertFalse('IESG Breakfast' in unicontent(r))
|
||||
self.assertNotContains(r, 'IESG Breakfast')
|
||||
|
||||
url = urlreverse("ietf.meeting.views.agenda_by_type",kwargs=dict(num=meeting.number,type='session'))
|
||||
r = self.client.get(url)
|
||||
|
@ -266,7 +257,7 @@ class MeetingTests(TestCase):
|
|||
r = self.client.get(url)
|
||||
self.assertEqual(r.status_code,200)
|
||||
self.assertTrue(all([x in unicontent(r) for x in ['mars','Test Room','Breakfast Room']]))
|
||||
self.assertFalse('IESG Breakfast' in unicontent(r))
|
||||
self.assertNotContains(r, 'IESG Breakfast')
|
||||
|
||||
|
||||
def test_agenda_week_view(self):
|
||||
|
@ -364,7 +355,7 @@ class MeetingTests(TestCase):
|
|||
self.assertEqual(r.status_code, 200)
|
||||
self.assertContains(r, meeting.number)
|
||||
self.assertContains(r, "mars")
|
||||
self.assertFalse("No session requested" in unicontent(r))
|
||||
self.assertNotContains(r, "No session requested")
|
||||
|
||||
self.client.login(username="ad", password="ad+password")
|
||||
r = self.client.get(urlreverse("ietf.meeting.views.materials_editable_groups", kwargs={'num':meeting.number}))
|
||||
|
@ -400,7 +391,7 @@ class MeetingTests(TestCase):
|
|||
url = urlreverse('ietf.meeting.views.proceedings_acknowledgements',kwargs={'num':meeting.number})
|
||||
response = self.client.get(url)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertTrue('test acknowledgements' in response.content)
|
||||
self.assertIn('test acknowledgements', response.content)
|
||||
|
||||
@patch('urllib2.urlopen')
|
||||
def test_proceedings_attendees(self, mock_urlopen):
|
||||
|
@ -411,7 +402,7 @@ class MeetingTests(TestCase):
|
|||
url = urlreverse('ietf.meeting.views.proceedings_attendees',kwargs={'num':96})
|
||||
response = self.client.get(url)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertTrue('Attendee List' in response.content)
|
||||
self.assertIn('Attendee List', response.content)
|
||||
q = PyQuery(response.content)
|
||||
self.assertEqual(1,len(q("#id_attendees tbody tr")))
|
||||
|
||||
|
@ -427,7 +418,7 @@ class MeetingTests(TestCase):
|
|||
url = urlreverse('ietf.meeting.views.proceedings_overview',kwargs={'num':96})
|
||||
response = self.client.get(url)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertTrue('The Internet Engineering Task Force' in response.content)
|
||||
self.assertIn('The Internet Engineering Task Force', response.content)
|
||||
|
||||
def test_proceedings_progress_report(self):
|
||||
make_meeting_test_data()
|
||||
|
@ -437,7 +428,7 @@ class MeetingTests(TestCase):
|
|||
url = urlreverse('ietf.meeting.views.proceedings_progress_report',kwargs={'num':96})
|
||||
response = self.client.get(url)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertTrue('Progress Report' in response.content)
|
||||
self.assertIn('Progress Report', response.content)
|
||||
|
||||
def test_feed(self):
|
||||
meeting = make_meeting_test_data()
|
||||
|
@ -456,7 +447,7 @@ class MeetingTests(TestCase):
|
|||
url = urlreverse('ietf.meeting.views.important_dates',kwargs={'num':meeting.number})
|
||||
r = self.client.get(url)
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertIn(str(meeting.importantdate_set.first().date), unicontent(r))
|
||||
self.assertContains(r, str(meeting.importantdate_set.first().date))
|
||||
idn = ImportantDateName.objects.filter(used=True).first()
|
||||
pre_date = meeting.importantdate_set.get(name=idn).date
|
||||
idn.default_offset_days -= 1
|
||||
|
@ -480,7 +471,7 @@ class MeetingTests(TestCase):
|
|||
self.assertEqual(r.status_code, 200)
|
||||
self.assertEqual(r.get('Content-Type'), "text/calendar")
|
||||
self.assertContains(r, 'BEGIN:VEVENT')
|
||||
self.assertEqual(r.content.count('UID'), 2)
|
||||
self.assertEqual(r.content.count(b'UID'), 2)
|
||||
self.assertContains(r, 'SUMMARY:mars - Martian Special Interest Group')
|
||||
self.assertContains(r, t1.time.strftime('%Y%m%dT%H%M%S'))
|
||||
self.assertContains(r, t2.time.strftime('%Y%m%dT%H%M%S'))
|
||||
|
@ -491,7 +482,7 @@ class MeetingTests(TestCase):
|
|||
self.assertEqual(r.status_code, 200)
|
||||
self.assertEqual(r.get('Content-Type'), "text/calendar")
|
||||
self.assertContains(r, 'BEGIN:VEVENT')
|
||||
self.assertEqual(r.content.count('UID'), 1)
|
||||
self.assertEqual(r.content.count(b'UID'), 1)
|
||||
self.assertContains(r, 'SUMMARY:mars - Martian Special Interest Group')
|
||||
self.assertContains(r, t1.time.strftime('%Y%m%dT%H%M%S'))
|
||||
self.assertNotContains(r, t2.time.strftime('%Y%m%dT%H%M%S'))
|
||||
|
@ -736,7 +727,7 @@ class SessionDetailsTests(TestCase):
|
|||
url = urlreverse('ietf.meeting.views.session_details', kwargs=dict(num=session.meeting.number, acronym=group.acronym))
|
||||
r = self.client.get(url)
|
||||
self.assertTrue(all([x in unicontent(r) for x in ('slides','agenda','minutes','draft')]))
|
||||
self.assertFalse('deleted' in unicontent(r))
|
||||
self.assertNotContains(r, 'deleted')
|
||||
|
||||
def test_add_session_drafts(self):
|
||||
group = GroupFactory.create(type_id='wg',state_id='active')
|
||||
|
@ -764,7 +755,7 @@ class SessionDetailsTests(TestCase):
|
|||
r = self.client.post(url,dict(drafts=[new_draft.pk, old_draft.pk]))
|
||||
self.assertTrue(r.status_code, 200)
|
||||
q = PyQuery(r.content)
|
||||
self.assertTrue("Already linked:" in q('form .alert-danger').text())
|
||||
self.assertIn("Already linked:", q('form .alert-danger').text())
|
||||
|
||||
self.assertEqual(1,session.sessionpresentation_set.count())
|
||||
r = self.client.post(url,dict(drafts=[new_draft.pk,]))
|
||||
|
@ -913,7 +904,7 @@ class InterimTests(TestCase):
|
|||
r = self.client.post(url, initial)
|
||||
self.assertRedirects(r, urlreverse('ietf.meeting.views.interim_announce'))
|
||||
self.assertEqual(len(outbox), len_before + 1)
|
||||
self.assertTrue('WG Virtual Meeting' in outbox[-1]['Subject'])
|
||||
self.assertIn('WG Virtual Meeting', outbox[-1]['Subject'])
|
||||
|
||||
def test_interim_approve_by_ad(self):
|
||||
make_meeting_test_data()
|
||||
|
@ -926,7 +917,7 @@ class InterimTests(TestCase):
|
|||
for session in meeting.session_set.all():
|
||||
self.assertEqual(session.status.slug, 'scheda')
|
||||
self.assertEqual(len(outbox), length_before + 1)
|
||||
self.assertTrue('ready for announcement' in outbox[-1]['Subject'])
|
||||
self.assertIn('ready for announcement', outbox[-1]['Subject'])
|
||||
|
||||
def test_interim_approve_by_secretariat(self):
|
||||
make_meeting_test_data()
|
||||
|
@ -949,7 +940,7 @@ class InterimTests(TestCase):
|
|||
self.assertContains(r, 'IETF - %02d'%int(ietf.meeting.number))
|
||||
q = PyQuery(r.content)
|
||||
id="-%s" % interim.group.acronym
|
||||
self.assertTrue('CANCELLED' in q('[id*="'+id+'"]').text())
|
||||
self.assertIn('CANCELLED', q('[id*="'+id+'"]').text())
|
||||
|
||||
def test_upcoming(self):
|
||||
make_meeting_test_data()
|
||||
|
@ -964,7 +955,7 @@ class InterimTests(TestCase):
|
|||
self.assertContains(r, 'IETF - 42')
|
||||
# cancelled session
|
||||
q = PyQuery(r.content)
|
||||
self.assertTrue('CANCELLED' in q('[id*="-ames"]').text())
|
||||
self.assertIn('CANCELLED', q('[id*="-ames"]').text())
|
||||
self.check_interim_tabs(url)
|
||||
|
||||
def test_upcoming_ical(self):
|
||||
|
@ -973,14 +964,14 @@ class InterimTests(TestCase):
|
|||
r = self.client.get(url)
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertEqual(r.get('Content-Type'), "text/calendar")
|
||||
self.assertEqual(r.content.count('UID'), 7)
|
||||
self.assertEqual(r.content.count(b'UID'), 7)
|
||||
# check filtered output
|
||||
url = url + '?filters=mars'
|
||||
r = self.client.get(url)
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertEqual(r.get('Content-Type'), "text/calendar")
|
||||
# print r.content
|
||||
self.assertEqual(r.content.count('UID'), 2)
|
||||
self.assertEqual(r.content.count(b'UID'), 2)
|
||||
|
||||
|
||||
def test_interim_request_permissions(self):
|
||||
|
@ -1094,8 +1085,8 @@ class InterimTests(TestCase):
|
|||
self.assertTrue(os.path.exists(path))
|
||||
# check notice to secretariat
|
||||
self.assertEqual(len(outbox), length_before + 1)
|
||||
self.assertTrue('interim meeting ready for announcement' in outbox[-1]['Subject'])
|
||||
self.assertTrue('iesg-secretary@ietf.org' in outbox[-1]['To'])
|
||||
self.assertIn('interim meeting ready for announcement', outbox[-1]['Subject'])
|
||||
self.assertIn('iesg-secretary@ietf.org', outbox[-1]['To'])
|
||||
|
||||
def test_interim_request_single_in_person(self):
|
||||
make_meeting_test_data()
|
||||
|
@ -1467,7 +1458,7 @@ class InterimTests(TestCase):
|
|||
self.assertEqual(session.status_id, 'canceled')
|
||||
self.assertEqual(session.agenda_note, comments)
|
||||
self.assertEqual(len(outbox), length_before + 1)
|
||||
self.assertTrue('Interim Meeting Cancelled' in outbox[-1]['Subject'])
|
||||
self.assertIn('Interim Meeting Cancelled', outbox[-1]['Subject'])
|
||||
|
||||
def test_interim_request_edit_no_notice(self):
|
||||
'''Edit a request. No notice should go out if it hasn't been announced yet'''
|
||||
|
@ -1542,7 +1533,7 @@ class InterimTests(TestCase):
|
|||
r = self.client.post(url, data)
|
||||
self.assertRedirects(r, urlreverse('ietf.meeting.views.interim_request_details', kwargs={'number': meeting.number}))
|
||||
self.assertEqual(len(outbox),length_before+1)
|
||||
self.assertTrue('CHANGED' in outbox[-1]['Subject'])
|
||||
self.assertIn('CHANGED', outbox[-1]['Subject'])
|
||||
session = meeting.session_set.first()
|
||||
timeslot = session.official_timeslotassignment().timeslot
|
||||
self.assertEqual(timeslot.time,new_time)
|
||||
|
@ -1570,7 +1561,7 @@ class InterimTests(TestCase):
|
|||
length_before = len(outbox)
|
||||
send_interim_approval_request(meetings=[meeting])
|
||||
self.assertEqual(len(outbox),length_before+1)
|
||||
self.assertTrue('New Interim Meeting Request' in outbox[-1]['Subject'])
|
||||
self.assertIn('New Interim Meeting Request', outbox[-1]['Subject'])
|
||||
|
||||
def test_send_interim_cancellation_notice(self):
|
||||
make_meeting_test_data()
|
||||
|
@ -1578,7 +1569,7 @@ class InterimTests(TestCase):
|
|||
length_before = len(outbox)
|
||||
send_interim_cancellation_notice(meeting=meeting)
|
||||
self.assertEqual(len(outbox),length_before+1)
|
||||
self.assertTrue('Interim Meeting Cancelled' in outbox[-1]['Subject'])
|
||||
self.assertIn('Interim Meeting Cancelled', outbox[-1]['Subject'])
|
||||
|
||||
def test_send_interim_minutes_reminder(self):
|
||||
make_meeting_test_data()
|
||||
|
@ -1588,7 +1579,7 @@ class InterimTests(TestCase):
|
|||
length_before = len(outbox)
|
||||
send_interim_minutes_reminder(meeting=meeting)
|
||||
self.assertEqual(len(outbox),length_before+1)
|
||||
self.assertTrue('Action Required: Minutes' in outbox[-1]['Subject'])
|
||||
self.assertIn('Action Required: Minutes', outbox[-1]['Subject'])
|
||||
|
||||
|
||||
def test_group_ical(self):
|
||||
|
@ -1607,7 +1598,7 @@ class InterimTests(TestCase):
|
|||
self.assertEqual(r.status_code, 200)
|
||||
self.assertEqual(r.get('Content-Type'), "text/calendar")
|
||||
self.assertContains(r, 'BEGIN:VEVENT')
|
||||
self.assertEqual(r.content.count('UID'), 2)
|
||||
self.assertEqual(r.content.count(b'UID'), 2)
|
||||
self.assertContains(r, 'SUMMARY:mars - Martian Special Interest Group')
|
||||
self.assertContains(r, t1.time.strftime('%Y%m%dT%H%M%S'))
|
||||
self.assertContains(r, t2.time.strftime('%Y%m%dT%H%M%S'))
|
||||
|
@ -1618,7 +1609,7 @@ class InterimTests(TestCase):
|
|||
self.assertEqual(r.status_code, 200)
|
||||
self.assertEqual(r.get('Content-Type'), "text/calendar")
|
||||
self.assertContains(r, 'BEGIN:VEVENT')
|
||||
self.assertEqual(r.content.count('UID'), 1)
|
||||
self.assertEqual(r.content.count(b'UID'), 1)
|
||||
self.assertContains(r, 'SUMMARY:mars - Martian Special Interest Group')
|
||||
self.assertContains(r, t1.time.strftime('%Y%m%dT%H%M%S'))
|
||||
self.assertNotContains(r, t2.time.strftime('%Y%m%dT%H%M%S'))
|
||||
|
@ -1631,27 +1622,27 @@ class AjaxTests(TestCase):
|
|||
url = urlreverse('ietf.meeting.views.ajax_get_utc') + "?date=2016-1-1&time=badtime&timezone=UTC"
|
||||
r = self.client.get(url)
|
||||
self.assertEqual(r.status_code, 200)
|
||||
data = json.loads(r.content)
|
||||
data = r.json()
|
||||
self.assertEqual(data["error"], True)
|
||||
url = urlreverse('ietf.meeting.views.ajax_get_utc') + "?date=2016-1-1&time=25:99&timezone=UTC"
|
||||
r = self.client.get(url)
|
||||
self.assertEqual(r.status_code, 200)
|
||||
data = json.loads(r.content)
|
||||
data = r.json()
|
||||
self.assertEqual(data["error"], True)
|
||||
url = urlreverse('ietf.meeting.views.ajax_get_utc') + "?date=2016-1-1&time=10:00am&timezone=UTC"
|
||||
r = self.client.get(url)
|
||||
self.assertEqual(r.status_code, 200)
|
||||
data = json.loads(r.content)
|
||||
data = r.json()
|
||||
self.assertEqual(data["error"], True)
|
||||
# test good query
|
||||
url = urlreverse('ietf.meeting.views.ajax_get_utc') + "?date=2016-1-1&time=12:00&timezone=America/Los_Angeles"
|
||||
r = self.client.get(url)
|
||||
self.assertEqual(r.status_code, 200)
|
||||
data = json.loads(r.content)
|
||||
self.assertTrue('timezone' in data)
|
||||
self.assertTrue('time' in data)
|
||||
self.assertTrue('utc' in data)
|
||||
self.assertTrue('error' not in data)
|
||||
data = r.json()
|
||||
self.assertIn('timezone', data)
|
||||
self.assertIn('time', data)
|
||||
self.assertIn('utc', data)
|
||||
self.assertIn('error' not, data)
|
||||
self.assertEqual(data['utc'], '20:00')
|
||||
|
||||
class FloorPlanTests(TestCase):
|
||||
|
@ -1761,7 +1752,7 @@ class MaterialsTests(TestCase):
|
|||
r = self.client.get(url)
|
||||
self.assertEqual(r.status_code, 200)
|
||||
q = PyQuery(r.content)
|
||||
self.assertTrue('Upload' in str(q("title")))
|
||||
self.assertIn('Upload', str(q("title")))
|
||||
self.assertFalse(session.sessionpresentation_set.exists())
|
||||
test_file = StringIO(b'%PDF-1.4\n%âãÏÓ\nthis is some text for a test')
|
||||
test_file.name = "not_really.pdf"
|
||||
|
@ -1772,7 +1763,7 @@ class MaterialsTests(TestCase):
|
|||
r = self.client.get(url)
|
||||
self.assertEqual(r.status_code, 200)
|
||||
q = PyQuery(r.content)
|
||||
self.assertTrue('Revise' in str(q("title")))
|
||||
self.assertIn('Revise', str(q("title")))
|
||||
test_file = StringIO('%PDF-1.4\n%âãÏÓ\nthis is some different text for a test')
|
||||
test_file.name = "also_not_really.pdf"
|
||||
r = self.client.post(url,dict(file=test_file))
|
||||
|
@ -1796,7 +1787,7 @@ class MaterialsTests(TestCase):
|
|||
r = self.client.get(url)
|
||||
self.assertEqual(r.status_code, 200)
|
||||
q = PyQuery(r.content)
|
||||
self.assertTrue('Upload' in str(q("title")))
|
||||
self.assertIn('Upload', str(q("title")))
|
||||
self.assertFalse(session.sessionpresentation_set.exists())
|
||||
test_file = StringIO(b'%PDF-1.4\n%âãÏÓ\nthis is some text for a test')
|
||||
test_file.name = "not_really.pdf"
|
||||
|
@ -1814,7 +1805,7 @@ class MaterialsTests(TestCase):
|
|||
r = self.client.get(url)
|
||||
self.assertEqual(r.status_code, 200)
|
||||
q = PyQuery(r.content)
|
||||
self.assertTrue('Upload' in str(q("title")))
|
||||
self.assertIn('Upload', str(q("title")))
|
||||
|
||||
|
||||
def test_upload_minutes_agenda(self):
|
||||
|
@ -1829,7 +1820,7 @@ class MaterialsTests(TestCase):
|
|||
r = self.client.get(url)
|
||||
self.assertEqual(r.status_code, 200)
|
||||
q = PyQuery(r.content)
|
||||
self.assertTrue('Upload' in str(q("Title")))
|
||||
self.assertIn('Upload', str(q("Title")))
|
||||
self.assertFalse(session.sessionpresentation_set.exists())
|
||||
self.assertFalse(q('form input[type="checkbox"]'))
|
||||
|
||||
|
@ -1883,7 +1874,7 @@ class MaterialsTests(TestCase):
|
|||
r = self.client.get(url)
|
||||
self.assertEqual(r.status_code, 200)
|
||||
q = PyQuery(r.content)
|
||||
self.assertTrue('Revise' in str(q("Title")))
|
||||
self.assertIn('Revise', str(q("Title")))
|
||||
test_file = StringIO('this is some different text for a test')
|
||||
test_file.name = "also_not_really.txt"
|
||||
r = self.client.post(url,dict(file=test_file,apply_to_all=True))
|
||||
|
@ -1917,7 +1908,7 @@ class MaterialsTests(TestCase):
|
|||
r = self.client.get(url)
|
||||
self.assertEqual(r.status_code, 200)
|
||||
q = PyQuery(r.content)
|
||||
self.assertTrue('Upload' in str(q("Title")))
|
||||
self.assertIn('Upload', str(q("Title")))
|
||||
self.assertFalse(session.sessionpresentation_set.exists())
|
||||
self.assertFalse(q('form input[type="checkbox"]'))
|
||||
|
||||
|
@ -1938,7 +1929,7 @@ class MaterialsTests(TestCase):
|
|||
r = self.client.get(url)
|
||||
self.assertEqual(r.status_code, 200)
|
||||
q = PyQuery(r.content)
|
||||
self.assertTrue('Upload' in str(q("title")))
|
||||
self.assertIn('Upload', str(q("title")))
|
||||
self.assertFalse(session.sessionpresentation_set.filter(document__type_id=doctype))
|
||||
test_file = StringIO('this is some text for a test')
|
||||
test_file.name = "not_really.txt"
|
||||
|
@ -1961,7 +1952,7 @@ class MaterialsTests(TestCase):
|
|||
r = self.client.get(url)
|
||||
self.assertEqual(r.status_code, 200)
|
||||
q = PyQuery(r.content)
|
||||
self.assertTrue('Upload' in str(q("title")))
|
||||
self.assertIn('Upload', str(q("title")))
|
||||
self.assertFalse(session1.sessionpresentation_set.filter(document__type_id='slides'))
|
||||
test_file = StringIO('this is not really a slide')
|
||||
test_file.name = 'not_really.txt'
|
||||
|
@ -1989,7 +1980,7 @@ class MaterialsTests(TestCase):
|
|||
r = self.client.get(url)
|
||||
self.assertTrue(r.status_code, 200)
|
||||
q = PyQuery(r.content)
|
||||
self.assertTrue('Revise' in str(q("title")))
|
||||
self.assertIn('Revise', str(q("title")))
|
||||
test_file = StringIO('new content for the second slide deck')
|
||||
test_file.name = 'doesnotmatter.txt'
|
||||
r = self.client.post(url,dict(file=test_file,title='rename the presentation',apply_to_all=False))
|
||||
|
@ -2158,8 +2149,8 @@ class SessionTests(TestCase):
|
|||
url = urlreverse('ietf.meeting.views.request_minutes',kwargs={'num':meeting.number})
|
||||
login_testing_unauthorized(self,"secretary",url)
|
||||
r = self.client.get(url)
|
||||
self.assertNotIn(has_minutes.group.acronym, unicontent(r).lower())
|
||||
self.assertIn(has_no_minutes.group.acronym, unicontent(r).lower())
|
||||
self.assertNotContains(r, has_minutes.group.acronym)
|
||||
self.assertContains(r, has_no_minutes.group.acronym)
|
||||
r = self.client.post(url,{'to':'wgchairs@ietf.org',
|
||||
'cc': 'irsg@irtf.org',
|
||||
'subject': 'I changed the subject',
|
||||
|
|
|
@ -1461,7 +1461,7 @@ class NewActiveNomComTests(TestCase):
|
|||
fb_count_before = Feedback.objects.count()
|
||||
response = self.client.post(url,{'email_text':"""To: rjsparks@nostrum.com
|
||||
From: Robert Sparks <rjsparks@nostrum.com>
|
||||
Subject: Junk message for feedback testing
|
||||
Subject: Junk message for feedback testing =?iso-8859-1?q?p=F6stal?=
|
||||
Message-ID: <566F2FE5.1050401@nostrum.com>
|
||||
Date: Mon, 14 Dec 2015 15:08:53 -0600
|
||||
Content-Type: text/plain; charset=utf-8; format=flowed
|
||||
|
@ -2058,8 +2058,7 @@ class TopicTests(TestCase):
|
|||
feedback_url = reverse('ietf.nomcom.views.public_feedback',kwargs={'year':self.nc.year() })
|
||||
login_testing_unauthorized(self, self.plain_person.user.username, feedback_url)
|
||||
r = self.client.get(feedback_url)
|
||||
self.assertEqual(r.status_code,200)
|
||||
self.assertNotIn(topic.subject, unicontent(r))
|
||||
self.assertNotContains(r, topic.subject)
|
||||
topic_url = feedback_url + '?topic=%d'%topic.pk
|
||||
r = self.client.get(topic_url)
|
||||
self.assertEqual(r.status_code,404)
|
||||
|
@ -2073,8 +2072,7 @@ class TopicTests(TestCase):
|
|||
valid_user = self.nc.nominee_set.first().person
|
||||
self.client.login(username=valid_user.user.username,password=valid_user.user.username+"+password")
|
||||
r = self.client.get(feedback_url)
|
||||
self.assertEqual(r.status_code,200)
|
||||
self.assertIn(topic.subject, unicontent(r))
|
||||
self.assertContains(r, topic.subject)
|
||||
r = self.client.get(topic_url)
|
||||
self.assertEqual(r.status_code,200)
|
||||
r = self.client.post(topic_url, {'comments':'junk', 'confirmation':False})
|
||||
|
|
|
@ -499,8 +499,8 @@ class SubmitTests(TestCase):
|
|||
self.assertTrue(name in str(outbox[-1]))
|
||||
r = self.client.get(urlreverse('ietf.doc.views_search.recent_drafts'))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertIn(draft.name, unicontent(r))
|
||||
self.assertIn(draft.title, unicontent(r))
|
||||
self.assertContains(r, draft.name)
|
||||
self.assertContains(r, draft.title)
|
||||
|
||||
|
||||
def test_submit_existing_txt(self):
|
||||
|
@ -624,9 +624,8 @@ class SubmitTests(TestCase):
|
|||
self.assertEqual(draft.relateddocument_set.filter(relationship_id='replaces').count(), replaces_count)
|
||||
#
|
||||
r = self.client.get(urlreverse('ietf.doc.views_search.recent_drafts'))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertIn(draft.name, unicontent(r))
|
||||
self.assertIn(draft.title, unicontent(r))
|
||||
self.assertContains(r, draft.name)
|
||||
self.assertContains(r, draft.title)
|
||||
|
||||
def test_submit_cancel_confirmation(self):
|
||||
ad=Person.objects.get(user__username='ad')
|
||||
|
@ -819,8 +818,7 @@ class SubmitTests(TestCase):
|
|||
|
||||
# status page as unpriviliged => no edit button
|
||||
r = self.client.get(unprivileged_status_url)
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertTrue(("submission status of %s" % name) in unicontent(r).lower())
|
||||
self.assertContains(r, "submission status of %s" % name)
|
||||
q = PyQuery(r.content)
|
||||
adjust_button = q('[type=submit]:contains("Adjust")')
|
||||
self.assertEqual(len(adjust_button), 0)
|
||||
|
|
|
@ -66,7 +66,7 @@ def check(codeString, filename, verbosity=1):
|
|||
if lines[message.lineno-1].find('pyflakes:ignore') < 0]
|
||||
# honour pyflakes:
|
||||
|
||||
messages.sort(lambda a, b: cmp(a.lineno, b.lineno))
|
||||
messages.sort(key=lambda x: x.lineno)
|
||||
if verbosity > 0:
|
||||
if len(messages):
|
||||
sys.stderr.write('F')
|
||||
|
|
Loading…
Reference in a new issue