diff --git a/debug.py b/debug.py index 914c7518b..ed19b7761 100644 --- a/debug.py +++ b/debug.py @@ -190,6 +190,7 @@ def info(name): if debug: frame = inspect.stack()[1][0] value = eval(name, frame.f_globals, frame.f_locals) + vtype = eval("type(%s)"%name, frame.f_globals, frame.f_locals) indent = ' ' * (_report_indent[0]) - sys.stderr.write("%s%s: %s %s\n" % (indent, name, value, type(value))) + sys.stderr.write("%s%s: '%s' (%s)\n" % (indent, name, value, vtype)) diff --git a/ietf/doc/tests.py b/ietf/doc/tests.py index 27bd054d8..12bd84888 100644 --- a/ietf/doc/tests.py +++ b/ietf/doc/tests.py @@ -26,7 +26,7 @@ from ietf.name.models import SessionStatusName from ietf.person.models import Person from ietf.utils.mail import outbox from ietf.utils.test_data import make_test_data -from ietf.utils.test_utils import login_testing_unauthorized +from ietf.utils.test_utils import login_testing_unauthorized, unicontent from ietf.utils.test_utils import TestCase class SearchTests(TestCase): @@ -46,68 +46,68 @@ class SearchTests(TestCase): r = self.client.get(base_url + "?rfcs=on&name=xyzzy") self.assertEqual(r.status_code, 200) - self.assertTrue("no documents match" in r.content.lower()) + self.assertTrue("no documents match" in unicontent(r).lower()) r = self.client.get(base_url + "?olddrafts=on&name=bar") self.assertEqual(r.status_code, 200) - self.assertTrue("no documents match" in r.content.lower()) + self.assertTrue("no documents match" in unicontent(r).lower()) r = self.client.get(base_url + "?olddrafts=on&name=foo") self.assertEqual(r.status_code, 200) - self.assertTrue("draft-foo-mars-test" in r.content.lower()) + self.assertTrue("draft-foo-mars-test" in unicontent(r).lower()) # find by rfc/active/inactive draft.set_state(State.objects.get(type="draft", slug="rfc")) r = self.client.get(base_url + "?rfcs=on&name=%s" % draft.name) self.assertEqual(r.status_code, 200) - self.assertTrue(draft.title in r.content) + self.assertTrue(draft.title in unicontent(r)) draft.set_state(State.objects.get(type="draft", slug="active")) r = self.client.get(base_url + "?activedrafts=on&name=%s" % draft.name) self.assertEqual(r.status_code, 200) - self.assertTrue(draft.title in r.content) + self.assertTrue(draft.title in unicontent(r)) draft.set_state(State.objects.get(type="draft", slug="expired")) r = self.client.get(base_url + "?olddrafts=on&name=%s" % draft.name) self.assertEqual(r.status_code, 200) - self.assertTrue(draft.title in r.content) + self.assertTrue(draft.title in unicontent(r)) draft.set_state(State.objects.get(type="draft", slug="active")) # find by title r = self.client.get(base_url + "?activedrafts=on&name=%s" % draft.title.split()[0]) self.assertEqual(r.status_code, 200) - self.assertTrue(draft.title in r.content) + self.assertTrue(draft.title in unicontent(r)) # find by author r = self.client.get(base_url + "?activedrafts=on&by=author&author=%s" % draft.authors.all()[0].person.name_parts()[1]) self.assertEqual(r.status_code, 200) - self.assertTrue(draft.title in r.content) + self.assertTrue(draft.title in unicontent(r)) # find by group r = self.client.get(base_url + "?activedrafts=on&by=group&group=%s" % draft.group.acronym) self.assertEqual(r.status_code, 200) - self.assertTrue(draft.title in r.content) + self.assertTrue(draft.title in unicontent(r)) # find by area r = self.client.get(base_url + "?activedrafts=on&by=area&area=%s" % draft.group.parent_id) self.assertEqual(r.status_code, 200) - self.assertTrue(draft.title in r.content) + self.assertTrue(draft.title in unicontent(r)) # find by area r = self.client.get(base_url + "?activedrafts=on&by=area&area=%s" % draft.group.parent_id) self.assertEqual(r.status_code, 200) - self.assertTrue(draft.title in r.content) + self.assertTrue(draft.title in unicontent(r)) # find by AD r = self.client.get(base_url + "?activedrafts=on&by=ad&ad=%s" % draft.ad_id) self.assertEqual(r.status_code, 200) - self.assertTrue(draft.title in r.content) + self.assertTrue(draft.title in unicontent(r)) # find by IESG state r = self.client.get(base_url + "?activedrafts=on&by=state&state=%s&substate=" % draft.get_state("draft-iesg").pk) self.assertEqual(r.status_code, 200) - self.assertTrue(draft.title in r.content) + self.assertTrue(draft.title in unicontent(r)) def test_search_for_name(self): draft = make_test_data() @@ -189,30 +189,30 @@ class SearchTests(TestCase): make_test_data() r = self.client.get("/") self.assertEqual(r.status_code, 200) - self.assertTrue("Document Search" in r.content) + self.assertTrue("Document Search" in unicontent(r)) def test_drafts_pages(self): draft = make_test_data() r = self.client.get(urlreverse("docs_for_ad", kwargs=dict(name=draft.ad.full_name_as_key()))) self.assertEqual(r.status_code, 200) - self.assertTrue(draft.title in r.content) + self.assertTrue(draft.title in unicontent(r)) draft.set_state(State.objects.get(type="draft-iesg", slug="lc")) r = self.client.get(urlreverse("drafts_in_last_call")) self.assertEqual(r.status_code, 200) - self.assertTrue(draft.title in r.content) + self.assertTrue(draft.title in unicontent(r)) def test_indexes(self): draft = make_test_data() r = self.client.get(urlreverse("index_all_drafts")) self.assertEqual(r.status_code, 200) - self.assertTrue(draft.name in r.content) + self.assertTrue(draft.name in unicontent(r)) r = self.client.get(urlreverse("index_active_drafts")) self.assertEqual(r.status_code, 200) - self.assertTrue(draft.title in r.content) + self.assertTrue(draft.title in unicontent(r)) def test_ajax_search_docs(self): draft = make_test_data() @@ -437,55 +437,55 @@ Man Expires September 22, 2015 [Page 3] r = self.client.get(urlreverse("doc_view", kwargs=dict(name=draft.name))) self.assertEqual(r.status_code, 200) - self.assertTrue("Active Internet-Draft" in r.content) - self.assertTrue("Show full document text" in r.content) - self.assertFalse("Deimos street" in r.content) + self.assertTrue("Active Internet-Draft" in unicontent(r)) + self.assertTrue("Show full document text" in unicontent(r)) + self.assertFalse("Deimos street" in unicontent(r)) r = self.client.get(urlreverse("doc_view", kwargs=dict(name=draft.name)) + "?include_text=0") self.assertEqual(r.status_code, 200) - self.assertTrue("Active Internet-Draft" in r.content) - self.assertFalse("Show full document text" in r.content) - self.assertTrue("Deimos street" in r.content) + self.assertTrue("Active Internet-Draft" in unicontent(r)) + self.assertFalse("Show full document text" in unicontent(r)) + self.assertTrue("Deimos street" in unicontent(r)) r = self.client.get(urlreverse("doc_view", kwargs=dict(name=draft.name)) + "?include_text=foo") self.assertEqual(r.status_code, 200) - self.assertTrue("Active Internet-Draft" in r.content) - self.assertFalse("Show full document text" in r.content) - self.assertTrue("Deimos street" in r.content) + self.assertTrue("Active Internet-Draft" in unicontent(r)) + self.assertFalse("Show full document text" in unicontent(r)) + self.assertTrue("Deimos street" in unicontent(r)) r = self.client.get(urlreverse("doc_view", kwargs=dict(name=draft.name)) + "?include_text=1") self.assertEqual(r.status_code, 200) - self.assertTrue("Active Internet-Draft" in r.content) - self.assertFalse("Show full document text" in r.content) - self.assertTrue("Deimos street" in r.content) + self.assertTrue("Active Internet-Draft" in unicontent(r)) + self.assertFalse("Show full document text" in unicontent(r)) + self.assertTrue("Deimos street" in unicontent(r)) self.client.cookies = SimpleCookie({'full_draft': 'on'}) r = self.client.get(urlreverse("doc_view", kwargs=dict(name=draft.name))) self.assertEqual(r.status_code, 200) - self.assertTrue("Active Internet-Draft" in r.content) - self.assertFalse("Show full document text" in r.content) - self.assertTrue("Deimos street" in r.content) + self.assertTrue("Active Internet-Draft" in unicontent(r)) + self.assertFalse("Show full document text" in unicontent(r)) + self.assertTrue("Deimos street" in unicontent(r)) self.client.cookies = SimpleCookie({'full_draft': 'off'}) r = self.client.get(urlreverse("doc_view", kwargs=dict(name=draft.name))) self.assertEqual(r.status_code, 200) - self.assertTrue("Active Internet-Draft" in r.content) - self.assertTrue("Show full document text" in r.content) - self.assertFalse("Deimos street" in r.content) + self.assertTrue("Active Internet-Draft" in unicontent(r)) + self.assertTrue("Show full document text" in unicontent(r)) + self.assertFalse("Deimos street" in unicontent(r)) self.client.cookies = SimpleCookie({'full_draft': 'foo'}) r = self.client.get(urlreverse("doc_view", kwargs=dict(name=draft.name))) self.assertEqual(r.status_code, 200) - self.assertTrue("Active Internet-Draft" in r.content) - self.assertTrue("Show full document text" in r.content) - self.assertFalse("Deimos street" in r.content) + self.assertTrue("Active Internet-Draft" in unicontent(r)) + self.assertTrue("Show full document text" in unicontent(r)) + self.assertFalse("Deimos street" in unicontent(r)) # expired draft draft.set_state(State.objects.get(type="draft", slug="expired")) r = self.client.get(urlreverse("doc_view", kwargs=dict(name=draft.name))) self.assertEqual(r.status_code, 200) - self.assertTrue("Expired Internet-Draft" in r.content) + self.assertTrue("Expired Internet-Draft" in unicontent(r)) # replaced draft draft.set_state(State.objects.get(type="draft", slug="repl")) @@ -506,8 +506,8 @@ Man Expires September 22, 2015 [Page 3] r = self.client.get(urlreverse("doc_view", kwargs=dict(name=draft.name))) self.assertEqual(r.status_code, 200) - self.assertTrue("Replaced Internet-Draft" in r.content) - self.assertTrue(replacement.name in r.content) + self.assertTrue("Replaced Internet-Draft" in unicontent(r)) + self.assertTrue(replacement.name in unicontent(r)) rel.delete() # draft published as RFC @@ -527,8 +527,8 @@ Man Expires September 22, 2015 [Page 3] r = self.client.get(urlreverse("doc_view", kwargs=dict(name=rfc_alias.name))) self.assertEqual(r.status_code, 200) - self.assertTrue("RFC 123456" in r.content) - self.assertTrue(draft.name in r.content) + self.assertTrue("RFC 123456" in unicontent(r)) + self.assertTrue(draft.name in unicontent(r)) # naked RFC rfc = Document.objects.create( @@ -541,7 +541,7 @@ Man Expires September 22, 2015 [Page 3] DocAlias.objects.create(name=rfc.name, document=rfc) r = self.client.get(urlreverse("doc_view", kwargs=dict(name=rfc.name))) self.assertEqual(r.status_code, 200) - self.assertTrue("RFC 1234567" in r.content) + self.assertTrue("RFC 1234567" in unicontent(r)) # unknown draft r = self.client.get(urlreverse("doc_view", kwargs=dict(name="draft-xyz123"))) @@ -567,14 +567,14 @@ Man Expires September 22, 2015 [Page 3] r = self.client.get(urlreverse("doc_view", kwargs=dict(name=doc.name))) self.assertEqual(r.status_code, 200) - self.assertTrue("%s-01"%docname in r.content) + self.assertTrue("%s-01"%docname in unicontent(r)) r = self.client.get(urlreverse("doc_view", kwargs=dict(name=doc.name,rev="01"))) self.assertEqual(r.status_code, 302) r = self.client.get(urlreverse("doc_view", kwargs=dict(name=doc.name,rev="00"))) self.assertEqual(r.status_code, 200) - self.assertTrue("%s-00"%docname in r.content) + self.assertTrue("%s-00"%docname in unicontent(r)) class DocTestCase(TestCase): def test_document_charter(self): @@ -634,12 +634,12 @@ class DocTestCase(TestCase): r = self.client.get(urlreverse("ietf.doc.views_doc.document_ballot", kwargs=dict(name=doc.name))) self.assertEqual(r.status_code, 200) - self.assertTrue(pos.comment in r.content) + self.assertTrue(pos.comment in unicontent(r)) # test with ballot_id r = self.client.get(urlreverse("ietf.doc.views_doc.document_ballot", kwargs=dict(name=doc.name, ballot_id=ballot.pk))) self.assertEqual(r.status_code, 200) - self.assertTrue(pos.comment in r.content) + self.assertTrue(pos.comment in unicontent(r)) # test popup too while we're at it r = self.client.get(urlreverse("ietf.doc.views_doc.ballot_popup", kwargs=dict(name=doc.name, ballot_id=ballot.pk))) @@ -653,7 +653,7 @@ class DocTestCase(TestCase): doc.save() r = self.client.get(urlreverse("ietf.doc.views_doc.document_ballot", kwargs=dict(name=doc.name))) self.assertEqual(r.status_code, 200) - self.assertTrue( '(%s for -%s)' % (pos.comment_time.strftime('%Y-%m-%d'), oldrev) in r.content) + self.assertTrue( '(%s for -%s)' % (pos.comment_time.strftime('%Y-%m-%d'), oldrev) in unicontent(r)) def test_document_ballot_needed_positions(self): make_test_data() @@ -661,10 +661,10 @@ class DocTestCase(TestCase): # draft doc = Document.objects.get(name='draft-ietf-mars-test') r = self.client.get(urlreverse("ietf.doc.views_doc.document_ballot", kwargs=dict(name=doc.name))) - self.assertTrue('more YES or NO' in r.content) + self.assertTrue('more YES or NO' in unicontent(r)) Document.objects.filter(pk=doc.pk).update(intended_std_level='inf') r = self.client.get(urlreverse("ietf.doc.views_doc.document_ballot", kwargs=dict(name=doc.name))) - self.assertFalse('more YES or NO' in r.content) + self.assertFalse('more YES or NO' in unicontent(r)) # status change doc = Document.objects.get(name='status-change-imaginary-mid-review') @@ -673,16 +673,16 @@ class DocTestCase(TestCase): r = self.client.post(urlreverse('ietf.doc.views_status_change.change_state',kwargs=dict(name=doc.name)),dict(new_state=iesgeval_pk)) self.assertEqual(r.status_code, 302) r = self.client.get(r._headers["location"][1]) - self.assertTrue(">IESG Evaluation<" in r.content) + self.assertTrue(">IESG Evaluation<" in unicontent(r)) doc.relateddocument_set.create(target=DocAlias.objects.get(name='rfc9998'),relationship_id='tohist') r = self.client.get(urlreverse("ietf.doc.views_doc.document_ballot", kwargs=dict(name=doc.name))) - self.assertFalse('Needs a YES' in r.content) - self.assertFalse('more YES or NO' in r.content) + self.assertFalse('Needs a YES' in unicontent(r)) + self.assertFalse('more YES or NO' in unicontent(r)) doc.relateddocument_set.create(target=DocAlias.objects.get(name='rfc9999'),relationship_id='tois') r = self.client.get(urlreverse("ietf.doc.views_doc.document_ballot", kwargs=dict(name=doc.name))) - self.assertTrue('more YES or NO' in r.content) + self.assertTrue('more YES or NO' in unicontent(r)) def test_document_json(self): doc = make_test_data() @@ -710,8 +710,8 @@ class DocTestCase(TestCase): url = urlreverse('doc_writeup', kwargs=dict(name=doc.name)) r = self.client.get(url) self.assertEqual(r.status_code, 200) - self.assertTrue(appr.text in r.content) - self.assertTrue(notes.text in r.content) + self.assertTrue(appr.text in unicontent(r)) + self.assertTrue(notes.text in unicontent(r)) def test_history(self): doc = make_test_data() @@ -725,7 +725,7 @@ class DocTestCase(TestCase): url = urlreverse('doc_history', kwargs=dict(name=doc.name)) r = self.client.get(url) self.assertEqual(r.status_code, 200) - self.assertTrue(e.desc in r.content) + self.assertTrue(e.desc in unicontent(r)) def test_document_feed(self): doc = make_test_data() @@ -738,7 +738,7 @@ class DocTestCase(TestCase): r = self.client.get("/feed/document-changes/%s/" % doc.name) self.assertEqual(r.status_code, 200) - self.assertTrue(e.desc in r.content) + self.assertTrue(e.desc in unicontent(r)) def test_last_call_feed(self): doc = make_test_data() @@ -754,7 +754,7 @@ class DocTestCase(TestCase): r = self.client.get("/feed/last-call/") self.assertEqual(r.status_code, 200) - self.assertTrue(doc.name in r.content) + self.assertTrue(doc.name in unicontent(r)) def test_rfc_feed(self): make_test_data() @@ -765,7 +765,7 @@ class DocTestCase(TestCase): url = urlreverse('state_help', kwargs=dict(type="draft-iesg")) r = self.client.get(url) self.assertEqual(r.status_code, 200) - self.assertTrue(State.objects.get(type="draft-iesg", slug="lc").name in r.content) + self.assertTrue(State.objects.get(type="draft-iesg", slug="lc").name in unicontent(r)) def test_document_nonietf_pubreq_button(self): doc = make_test_data() @@ -773,12 +773,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) - self.assertTrue("Request publication" not in r.content) + self.assertTrue("Request publication" not in unicontent(r)) 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) - self.assertTrue("Request publication" in r.content) + self.assertTrue("Request publication" in unicontent(r)) class AddCommentTestCase(TestCase): @@ -835,11 +835,11 @@ class ReferencesTest(TestCase): url = urlreverse('doc_references', kwargs=dict(name=doc1.name)) r = self.client.get(url) self.assertEquals(r.status_code, 200) - self.assertTrue(doc2.name in r.content) + self.assertTrue(doc2.name in unicontent(r)) url = urlreverse('doc_referenced_by', kwargs=dict(name=doc2.name)) r = self.client.get(url) self.assertEquals(r.status_code, 200) - self.assertTrue(doc1.name in r.content) + self.assertTrue(doc1.name in unicontent(r)) class EmailAliasesTests(TestCase): @@ -884,12 +884,12 @@ expand-draft-ietf-ames-test.all@virtual.ietf.org ames-author@example.ames, ames login_testing_unauthorized(self, "plain", url) r = self.client.get(url) self.assertEqual(r.status_code, 200) - self.assertTrue(all([x in r.content for x in ['mars-test@','mars-test.authors@','mars-test.chairs@']])) - self.assertTrue(all([x in r.content for x in ['ames-test@','ames-test.authors@','ames-test.chairs@']])) + self.assertTrue(all([x in unicontent(r) for x in ['mars-test@','mars-test.authors@','mars-test.chairs@']])) + self.assertTrue(all([x in unicontent(r) for x in ['ames-test@','ames-test.authors@','ames-test.chairs@']])) def testExpansions(self): url = urlreverse('ietf.doc.views_doc.document_email', kwargs=dict(name="draft-ietf-mars-test")) r = self.client.get(url) self.assertEqual(r.status_code, 200) - self.assertTrue('draft-ietf-mars-test.all@ietf.org' in r.content) - self.assertTrue('ballot_saved' in r.content) + self.assertTrue('draft-ietf-mars-test.all@ietf.org' in unicontent(r)) + self.assertTrue('ballot_saved' in unicontent(r)) diff --git a/ietf/doc/tests_ballot.py b/ietf/doc/tests_ballot.py index 1589df22c..5c20cc429 100644 --- a/ietf/doc/tests_ballot.py +++ b/ietf/doc/tests_ballot.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- import datetime from pyquery import PyQuery @@ -11,7 +12,7 @@ from ietf.group.models import Group, Role from ietf.name.models import BallotPositionName from ietf.iesg.models import TelechatDate from ietf.person.models import Person -from ietf.utils.test_utils import TestCase +from ietf.utils.test_utils import TestCase, unicontent from ietf.utils.mail import outbox, empty_outbox from ietf.utils.test_data import make_test_data from ietf.utils.test_utils import login_testing_unauthorized @@ -24,7 +25,7 @@ class EditPositionTests(TestCase): ballot_id=draft.latest_event(BallotDocEvent, type="created_ballot").pk)) login_testing_unauthorized(self, "ad", url) - ad = Person.objects.get(name="Aread Irector") + ad = Person.objects.get(name="Areað Irector") # normal get r = self.client.get(url) @@ -84,7 +85,7 @@ class EditPositionTests(TestCase): draft = make_test_data() url = urlreverse('ietf.doc.views_ballot.edit_position', kwargs=dict(name=draft.name, ballot_id=draft.latest_event(BallotDocEvent, type="created_ballot").pk)) - ad = Person.objects.get(name="Aread Irector") + ad = Person.objects.get(name="Areað Irector") url += "?ad=%s" % ad.pk login_testing_unauthorized(self, "secretary", url) @@ -127,7 +128,7 @@ class EditPositionTests(TestCase): draft.notify = "somebody@example.com" draft.save() - ad = Person.objects.get(name="Aread Irector") + ad = Person.objects.get(name="Areað Irector") ballot = draft.latest_event(BallotDocEvent, type="created_ballot") @@ -263,7 +264,7 @@ class BallotWriteupsTests(TestCase): q = PyQuery(r.content) self.assertEqual(len(q('textarea[name=ballot_writeup]')), 1) self.assertTrue(q('[type=submit]:contains("Save")')) - self.assertTrue("IANA does not" in r.content) + self.assertTrue("IANA does not" in unicontent(r)) # save r = self.client.post(url, dict( @@ -455,7 +456,7 @@ class DeferUndeferTestCase(TestCase): e = TelechatDocEvent(type="scheduled_for_telechat", doc = doc, - by = Person.objects.get(name="Aread Irector"), + by = Person.objects.get(name="Areað Irector"), telechat_date = first_date, returning_item = False, ) @@ -511,7 +512,7 @@ class DeferUndeferTestCase(TestCase): e = TelechatDocEvent(type="scheduled_for_telechat", doc = doc, - by = Person.objects.get(name="Aread Irector"), + by = Person.objects.get(name="Areað Irector"), telechat_date = second_date, returning_item = True, ) diff --git a/ietf/doc/tests_charter.py b/ietf/doc/tests_charter.py index 2ea147f36..ff710dc79 100644 --- a/ietf/doc/tests_charter.py +++ b/ietf/doc/tests_charter.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- # Copyright The IETF Trust 2011, All Rights Reserved import os, shutil, datetime @@ -13,7 +14,7 @@ from ietf.doc.utils_charter import next_revision, default_review_text, default_a from ietf.group.models import Group, GroupMilestone from ietf.iesg.models import TelechatDate from ietf.person.models import Person -from ietf.utils.test_utils import TestCase +from ietf.utils.test_utils import TestCase, unicontent from ietf.utils.mail import outbox, empty_outbox from ietf.utils.test_data import make_test_data from ietf.utils.test_utils import login_testing_unauthorized @@ -252,7 +253,7 @@ class EditCharterTests(TestCase): r = self.client.post(url, dict(txt=test_file)) self.assertEqual(r.status_code, 200) - self.assertTrue("does not appear to be a text file" in r.content) + self.assertTrue("does not appear to be a text file" in unicontent(r)) # post prev_rev = charter.rev @@ -420,7 +421,7 @@ class EditCharterTests(TestCase): with open(os.path.join(self.charter_dir, "%s-%s.txt" % (charter.canonical_name(), charter.rev)), "w") as f: f.write("This is a charter.") - p = Person.objects.get(name="Aread Irector") + p = Person.objects.get(name="Areað Irector") BallotDocEvent.objects.create( type="created_ballot", @@ -504,4 +505,4 @@ class EditCharterTests(TestCase): url = urlreverse('charter_with_milestones_txt', kwargs=dict(name=charter.name, rev=charter.rev)) r = self.client.get(url) self.assertEqual(r.status_code, 200) - self.assertTrue(m.desc in r.content) + self.assertTrue(m.desc in unicontent(r)) diff --git a/ietf/doc/tests_conflict_review.py b/ietf/doc/tests_conflict_review.py index 34edd19d8..f97b48004 100644 --- a/ietf/doc/tests_conflict_review.py +++ b/ietf/doc/tests_conflict_review.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- import os import shutil @@ -14,7 +15,7 @@ from ietf.doc.views_conflict_review import default_approval_text from ietf.group.models import Person from ietf.iesg.models import TelechatDate from ietf.name.models import StreamName -from ietf.utils.test_utils import TestCase +from ietf.utils.test_utils import TestCase, unicontent from ietf.utils.mail import outbox, empty_outbox from ietf.utils.test_data import make_test_data from ietf.utils.test_utils import login_testing_unauthorized @@ -55,14 +56,14 @@ class ConflictReviewTests(TestCase): self.assertEqual(Document.objects.filter(name='conflict-review-imaginary-independent-submission').count() , 0) # successful review start - ad_strpk = str(Person.objects.get(name='Aread Irector').pk) + ad_strpk = str(Person.objects.get(name='Areað Irector').pk) state_strpk = str(State.objects.get(used=True, slug='needshep',type__slug='conflrev').pk) r = self.client.post(url,dict(ad=ad_strpk,create_in_state=state_strpk,notify='ipu@ietf.org')) self.assertEqual(r.status_code, 302) review_doc = Document.objects.get(name='conflict-review-imaginary-independent-submission') self.assertEqual(review_doc.get_state('conflrev').slug,'needshep') self.assertEqual(review_doc.rev,u'00') - self.assertEqual(review_doc.ad.name,u'Aread Irector') + self.assertEqual(review_doc.ad.name,u'Areað Irector') self.assertEqual(review_doc.notify,u'ipu@ietf.org') doc = Document.objects.get(name='draft-imaginary-independent-submission') self.assertTrue(doc in [x.target.document for x in review_doc.relateddocument_set.filter(relationship__slug='conflrev')]) @@ -72,7 +73,7 @@ class ConflictReviewTests(TestCase): self.assertTrue('Conflict Review requested' in outbox[-1]['Subject']) # verify you can't start a review when a review is already in progress - r = self.client.post(url,dict(ad="Aread Irector",create_in_state="Needs Shepherd",notify='ipu@ietf.org')) + r = self.client.post(url,dict(ad="Areað Irector",create_in_state="Needs Shepherd",notify='ipu@ietf.org')) self.assertEqual(r.status_code, 404) @@ -365,7 +366,7 @@ class ConflictReviewSubmitTests(TestCase): test_file.name = "unnamed" r = self.client.post(url, dict(txt=test_file,submit_response="1")) self.assertEqual(r.status_code, 200) - self.assertTrue("does not appear to be a text file" in r.content) + self.assertTrue("does not appear to be a text file" in unicontent(r)) # sane post uploading a file test_file = StringIO("This is a new proposal.") diff --git a/ietf/doc/tests_draft.py b/ietf/doc/tests_draft.py index 12094d341..192f7dbc3 100644 --- a/ietf/doc/tests_draft.py +++ b/ietf/doc/tests_draft.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- import os import shutil import datetime @@ -18,7 +19,7 @@ from ietf.group.models import Group from ietf.person.models import Person, Email from ietf.meeting.models import Meeting, MeetingTypeName from ietf.iesg.models import TelechatDate -from ietf.utils.test_utils import login_testing_unauthorized +from ietf.utils.test_utils import login_testing_unauthorized, unicontent from ietf.utils.test_data import make_test_data from ietf.utils.mail import outbox, empty_outbox from ietf.utils.test_utils import TestCase @@ -158,7 +159,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.assertTrue("Your request to issue" in r.content) + self.assertTrue("Your request to issue" in unicontent(r)) # last call text e = draft.latest_event(WriteupDocEvent, type="changed_last_call_text") @@ -353,7 +354,7 @@ class EditInfoTests(TestCase): events_before = draft.docevent_set.count() mailbox_before = len(outbox) - ad = Person.objects.get(name="Aread Irector") + ad = Person.objects.get(name="Areað Irector") r = self.client.post(url, dict(intended_std_level=str(draft.intended_std_level_id), @@ -446,7 +447,7 @@ class ResurrectTests(TestCase): self.assertEqual(draft.docevent_set.count(), events_before + 1) e = draft.latest_event(type="requested_resurrect") self.assertTrue(e) - self.assertEqual(e.by, Person.objects.get(name="Aread Irector")) + self.assertEqual(e.by, Person.objects.get(name="Areað Irector")) self.assertTrue("Resurrection" in e.desc) self.assertEqual(len(outbox), mailbox_before + 1) self.assertTrue("Resurrection" in outbox[-1]['Subject']) @@ -458,7 +459,7 @@ class ResurrectTests(TestCase): DocEvent.objects.create(doc=draft, type="requested_resurrect", - by=Person.objects.get(name="Aread Irector")) + by=Person.objects.get(name="Areað Irector")) url = urlreverse('doc_resurrect', kwargs=dict(name=draft.name)) @@ -905,7 +906,7 @@ class IndividualInfoFormsTests(TestCase): self.assertTrue(any(['Document shepherd changed to (None)' in x.desc for x in self.doc.docevent_set.filter(time=self.doc.time,type='added_comment')])) # test buggy change - ad = Person.objects.get(name='Aread Irector') + ad = Person.objects.get(name='Areað Irector') two_answers = "%s,%s" % (plain_email, ad.email_set.all()[0]) r = self.client.post(url, dict(shepherd=two_answers)) self.assertEqual(r.status_code, 200) diff --git a/ietf/doc/tests_material.py b/ietf/doc/tests_material.py index c9ed44889..dd01d787f 100644 --- a/ietf/doc/tests_material.py +++ b/ietf/doc/tests_material.py @@ -15,7 +15,7 @@ from ietf.group.models import Group from ietf.meeting.models import Meeting, Session, SessionPresentation from ietf.name.models import SessionStatusName from ietf.person.models import Person -from ietf.utils.test_utils import TestCase, login_testing_unauthorized +from ietf.utils.test_utils import TestCase, login_testing_unauthorized, unicontent from ietf.utils.test_data import make_test_data from ietf.meeting.test_data import make_meeting_test_data @@ -59,7 +59,7 @@ class GroupMaterialTests(TestCase): # normal get r = self.client.get(url) self.assertEqual(r.status_code, 200) - self.assertTrue("Slides" in r.content) + self.assertTrue("Slides" in unicontent(r)) url = urlreverse('ietf.doc.views_material.choose_material_type', kwargs=dict(acronym='mars')) r = self.client.get(url) diff --git a/ietf/doc/tests_status_change.py b/ietf/doc/tests_status_change.py index f9a564549..b607ec119 100644 --- a/ietf/doc/tests_status_change.py +++ b/ietf/doc/tests_status_change.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- import os import shutil @@ -14,7 +15,7 @@ from ietf.doc.utils import create_ballot_if_not_open from ietf.doc.views_status_change import default_approval_text from ietf.group.models import Person from ietf.iesg.models import TelechatDate -from ietf.utils.test_utils import TestCase +from ietf.utils.test_utils import TestCase, unicontent from ietf.utils.mail import outbox from ietf.utils.test_data import make_test_data from ietf.utils.test_utils import login_testing_unauthorized @@ -32,7 +33,7 @@ class StatusChangeTests(TestCase): q = PyQuery(r.content) self.assertEqual(len(q('form select[name=create_in_state]')),1) - ad_strpk = str(Person.objects.get(name='Aread Irector').pk) + ad_strpk = str(Person.objects.get(name='Areað Irector').pk) state_strpk = str(State.objects.get(slug='adrev',type__slug='statchg').pk) # faulty posts @@ -69,7 +70,7 @@ class StatusChangeTests(TestCase): status_change = Document.objects.get(name='status-change-imaginary-new') self.assertEqual(status_change.get_state('statchg').slug,'adrev') self.assertEqual(status_change.rev,u'00') - self.assertEqual(status_change.ad.name,u'Aread Irector') + self.assertEqual(status_change.ad.name,u'Areað Irector') self.assertEqual(status_change.notify,u'ipu@ietf.org') self.assertTrue(status_change.relateddocument_set.filter(relationship__slug='tois',target__document__name='draft-ietf-random-thing')) @@ -451,7 +452,7 @@ class StatusChangeSubmitTests(TestCase): test_file.name = "unnamed" r = self.client.post(url, dict(txt=test_file,submit_response="1")) self.assertEqual(r.status_code, 200) - self.assertTrue("does not appear to be a text file" in r.content) + self.assertTrue("does not appear to be a text file" in unicontent(r)) # sane post uploading a file test_file = StringIO("This is a new proposal.") @@ -476,7 +477,7 @@ class StatusChangeSubmitTests(TestCase): url = urlreverse('doc_view',kwargs=dict(name=doc.name,rev='00')) r = self.client.get(url) self.assertEqual(r.status_code,200) - self.assertTrue("This is the old proposal." in r.content) + self.assertTrue("This is the old proposal." in unicontent(r)) def setUp(self): make_test_data() diff --git a/ietf/doc/urls.py b/ietf/doc/urls.py index 49cbc3d38..50d21745f 100644 --- a/ietf/doc/urls.py +++ b/ietf/doc/urls.py @@ -42,8 +42,8 @@ urlpatterns = patterns('', url(r'^(?P[A-Za-z0-9\._\+\-]+)$', views_search.search_for_name, name="doc_search_for_name"), url(r'^search/$', views_search.search, name="doc_search"), url(r'^in-last-call/$', views_search.drafts_in_last_call, name="drafts_in_last_call"), - url(r'^ad/(?P[A-Za-z0-9.-]+)/$', views_search.docs_for_ad, name="docs_for_ad"), - (r'^ad2/(?P[A-Za-z0-9.-]+)/$', RedirectView.as_view(url='/doc/ad/%(name)s/', permanent=True)), + url(r'^ad/(?P[\w.-]+)/$(?u)', views_search.docs_for_ad, name="docs_for_ad"), + (r'^ad2/(?P[\w.-]+)/$(?u)', RedirectView.as_view(url='/doc/ad/%(name)s/', permanent=True)), url(r'^rfc-status-changes/$', views_status_change.rfc_status_changes, name='rfc_status_changes'), url(r'^start-rfc-status-change/(?P[A-Za-z0-9._+-]*)$', views_status_change.start_rfc_status_change, name='start_rfc_status_change'), url(r'^iesg/(?P[A-Za-z0-9.-]+/)?$', views_search.drafts_in_iesg_process, name="drafts_in_iesg_process"), diff --git a/ietf/group/tests.py b/ietf/group/tests.py index 36f9fdd48..9c0ca7364 100644 --- a/ietf/group/tests.py +++ b/ietf/group/tests.py @@ -8,7 +8,7 @@ from django.test import Client from ietf.group.models import Role, Group from ietf.utils.test_data import make_test_data -from ietf.utils.test_utils import login_testing_unauthorized, TestCase +from ietf.utils.test_utils import login_testing_unauthorized, TestCase, unicontent if getattr(settings,'SKIP_DOT_TO_PDF', False): skip_dot_to_pdf = True @@ -28,7 +28,7 @@ class StreamTests(TestCase): make_test_data() r = self.client.get(urlreverse("ietf.group.views_stream.streams")) self.assertEqual(r.status_code, 200) - self.assertTrue("Independent Submission Editor" in r.content) + self.assertTrue("Independent Submission Editor" in unicontent(r)) def test_stream_documents(self): draft = make_test_data() @@ -37,7 +37,7 @@ class StreamTests(TestCase): r = self.client.get(urlreverse("ietf.group.views_stream.stream_documents", kwargs=dict(acronym="iab"))) self.assertEqual(r.status_code, 200) - self.assertTrue(draft.name in r.content) + self.assertTrue(draft.name in unicontent(r)) def test_stream_edit(self): make_test_data() diff --git a/ietf/group/tests_info.py b/ietf/group/tests_info.py index 8af7090fb..d7f217c6e 100644 --- a/ietf/group/tests_info.py +++ b/ietf/group/tests_info.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- import os import shutil import calendar @@ -17,7 +18,7 @@ from ietf.group.models import Group, GroupEvent, GroupMilestone, GroupStateTrans from ietf.group.utils import save_group_in_history from ietf.name.models import DocTagName, GroupStateName, GroupTypeName from ietf.person.models import Person, Email -from ietf.utils.test_utils import TestCase +from ietf.utils.test_utils import TestCase, unicontent from ietf.utils.mail import outbox, empty_outbox from ietf.utils.test_data import make_test_data from ietf.utils.test_utils import login_testing_unauthorized @@ -38,41 +39,41 @@ class GroupPagesTests(TestCase): url = urlreverse('ietf.group.info.active_groups', kwargs=dict(group_type="wg")) r = self.client.get(url) self.assertEqual(r.status_code, 200) - self.assertTrue(group.parent.name in r.content) - self.assertTrue(group.acronym in r.content) - self.assertTrue(group.name in r.content) - self.assertTrue(group.ad_role().person.plain_name() in r.content) + self.assertTrue(group.parent.name in unicontent(r)) + self.assertTrue(group.acronym in unicontent(r)) + self.assertTrue(group.name in unicontent(r)) + self.assertTrue(group.ad_role().person.plain_name() in unicontent(r)) url = urlreverse('ietf.group.info.active_groups', kwargs=dict(group_type="rg")) r = self.client.get(url) self.assertEqual(r.status_code, 200) - self.assertTrue('Active Research Groups' in r.content) + self.assertTrue('Active Research Groups' in unicontent(r)) url = urlreverse('ietf.group.info.active_groups', kwargs=dict(group_type="area")) r = self.client.get(url) self.assertEqual(r.status_code, 200) - self.assertTrue("Far Future (farfut)" in r.content) + self.assertTrue("Far Future (farfut)" in unicontent(r)) url = urlreverse('ietf.group.info.active_groups', kwargs=dict(group_type="ag")) r = self.client.get(url) self.assertEqual(r.status_code, 200) - self.assertTrue("Active Area Groups" in r.content) + self.assertTrue("Active Area Groups" in unicontent(r)) url = urlreverse('ietf.group.info.active_groups', kwargs=dict(group_type="dir")) r = self.client.get(url) self.assertEqual(r.status_code, 200) - self.assertTrue("Active Directorates" in r.content) + self.assertTrue("Active Directorates" in unicontent(r)) url = urlreverse('ietf.group.info.active_groups', kwargs=dict(group_type="team")) r = self.client.get(url) self.assertEqual(r.status_code, 200) - self.assertTrue("Active Teams" in r.content) + self.assertTrue("Active Teams" in unicontent(r)) url = urlreverse('ietf.group.info.active_groups', kwargs=dict()) r = self.client.get(url) self.assertEqual(r.status_code, 200) - self.assertTrue("Directorate" in r.content) - self.assertTrue("AG" in r.content) + self.assertTrue("Directorate" in unicontent(r)) + self.assertTrue("AG" in unicontent(r)) for slug in GroupTypeName.objects.exclude(slug__in=['wg','rg','ag','area','dir','team']).values_list('slug',flat=True): with self.assertRaises(NoReverseMatch): @@ -90,35 +91,35 @@ class GroupPagesTests(TestCase): url = urlreverse('ietf.group.info.wg_summary_area', kwargs=dict(group_type="wg")) r = self.client.get(url) self.assertEqual(r.status_code, 200) - self.assertTrue(group.parent.name in r.content) - self.assertTrue(group.acronym in r.content) - self.assertTrue(group.name in r.content) - self.assertTrue(chair.address in r.content) + self.assertTrue(group.parent.name in unicontent(r)) + self.assertTrue(group.acronym in unicontent(r)) + self.assertTrue(group.name in unicontent(r)) + self.assertTrue(chair.address in unicontent(r)) url = urlreverse('ietf.group.info.wg_summary_acronym', kwargs=dict(group_type="wg")) r = self.client.get(url) self.assertEqual(r.status_code, 200) - self.assertTrue(group.acronym in r.content) - self.assertTrue(group.name in r.content) - self.assertTrue(chair.address in r.content) + self.assertTrue(group.acronym in unicontent(r)) + self.assertTrue(group.name in unicontent(r)) + self.assertTrue(chair.address in unicontent(r)) url = urlreverse('ietf.group.info.wg_charters', kwargs=dict(group_type="wg")) r = self.client.get(url) self.assertEqual(r.status_code, 200) - self.assertTrue(group.acronym in r.content) - self.assertTrue(group.name in r.content) - self.assertTrue(group.ad_role().person.plain_name() in r.content) - self.assertTrue(chair.address in r.content) - self.assertTrue("This is a charter." in r.content) + self.assertTrue(group.acronym in unicontent(r)) + self.assertTrue(group.name in unicontent(r)) + self.assertTrue(group.ad_role().person.plain_name() in unicontent(r)) + self.assertTrue(chair.address in unicontent(r)) + self.assertTrue("This is a charter." in unicontent(r)) url = urlreverse('ietf.group.info.wg_charters_by_acronym', kwargs=dict(group_type="wg")) r = self.client.get(url) self.assertEqual(r.status_code, 200) - self.assertTrue(group.acronym in r.content) - self.assertTrue(group.name in r.content) - self.assertTrue(group.ad_role().person.plain_name() in r.content) - self.assertTrue(chair.address in r.content) - self.assertTrue("This is a charter." in r.content) + self.assertTrue(group.acronym in unicontent(r)) + self.assertTrue(group.name in unicontent(r)) + self.assertTrue(group.ad_role().person.plain_name() in unicontent(r)) + self.assertTrue(chair.address in unicontent(r)) + self.assertTrue("This is a charter." in unicontent(r)) def test_chartering_groups(self): draft = make_test_data() @@ -186,11 +187,11 @@ class GroupPagesTests(TestCase): url = urlreverse('ietf.group.info.group_documents', kwargs=dict(group_type=group.type_id, acronym=group.acronym)) r = self.client.get(url) self.assertEqual(r.status_code, 200) - self.assertTrue(draft.name in r.content) - self.assertTrue(group.name in r.content) - self.assertTrue(group.acronym in r.content) + self.assertTrue(draft.name in unicontent(r)) + self.assertTrue(group.name in unicontent(r)) + self.assertTrue(group.acronym in unicontent(r)) - self.assertTrue(draft2.name in r.content) + self.assertTrue(draft2.name in unicontent(r)) # Make sure that a logged in user is presented with an opportunity to add results to their community list self.client.login(username="secretary", password="secretary+password") @@ -202,8 +203,8 @@ class GroupPagesTests(TestCase): url = urlreverse('ietf.group.info.group_documents_txt', kwargs=dict(group_type=group.type_id, acronym=group.acronym)) r = self.client.get(url) self.assertEqual(r.status_code, 200) - self.assertTrue(draft.name in r.content) - self.assertTrue(draft2.name in r.content) + self.assertTrue(draft.name in unicontent(r)) + self.assertTrue(draft2.name in unicontent(r)) def test_group_charter(self): draft = make_test_data() @@ -225,11 +226,11 @@ class GroupPagesTests(TestCase): ]: r = self.client.get(url) self.assertEqual(r.status_code, 200) - self.assertTrue(group.name in r.content) - self.assertTrue(group.acronym in r.content) - self.assertTrue("This is a charter." in r.content) - self.assertTrue(milestone.desc in r.content) - self.assertTrue(milestone.docs.all()[0].name in r.content) + self.assertTrue(group.name in unicontent(r)) + self.assertTrue(group.acronym in unicontent(r)) + self.assertTrue("This is a charter." in unicontent(r)) + self.assertTrue(milestone.desc in unicontent(r)) + self.assertTrue(milestone.docs.all()[0].name in unicontent(r)) def test_group_about(self): make_test_data() @@ -248,9 +249,9 @@ class GroupPagesTests(TestCase): url = group.about_url() r = self.client.get(url) self.assertEqual(r.status_code, 200) - self.assertTrue(group.name in r.content) - self.assertTrue(group.acronym in r.content) - self.assertTrue(group.description in r.content) + self.assertTrue(group.name in unicontent(r)) + self.assertTrue(group.acronym in unicontent(r)) + self.assertTrue(group.description in unicontent(r)) def test_materials(self): make_test_data() @@ -271,8 +272,8 @@ class GroupPagesTests(TestCase): ]: r = self.client.get(url) self.assertEqual(r.status_code, 200) - self.assertTrue(doc.title in r.content) - self.assertTrue(doc.name in r.content) + self.assertTrue(doc.title in unicontent(r)) + self.assertTrue(doc.name in unicontent(r)) url = urlreverse("group_materials", kwargs={ 'acronym': group.acronym }) @@ -281,7 +282,7 @@ class GroupPagesTests(TestCase): r = self.client.get(url) self.assertEqual(r.status_code, 200) - self.assertTrue(doc.title not in r.content) + self.assertTrue(doc.title not in unicontent(r)) def test_history(self): draft = make_test_data() @@ -296,7 +297,7 @@ class GroupPagesTests(TestCase): url = urlreverse('ietf.group.info.history', kwargs=dict(group_type=group.type_id, acronym=group.acronym)) r = self.client.get(url) self.assertEqual(r.status_code, 200) - self.assertTrue(e.desc in r.content) + self.assertTrue(e.desc in unicontent(r)) def test_feed(self): draft = make_test_data() @@ -316,8 +317,8 @@ class GroupPagesTests(TestCase): r = self.client.get("/feed/group-changes/%s/" % group.acronym) self.assertEqual(r.status_code, 200) - self.assertTrue(ge.desc in r.content) - self.assertTrue(de.desc in r.content) + self.assertTrue(ge.desc in unicontent(r)) + self.assertTrue(de.desc in unicontent(r)) class GroupEditTests(TestCase): @@ -477,7 +478,7 @@ class GroupEditTests(TestCase): with open(os.path.join(self.charter_dir, "%s-%s.txt" % (group.charter.canonical_name(), group.charter.rev)), "w") as f: f.write("This is a charter.") area = group.parent - ad = Person.objects.get(name="Aread Irector") + ad = Person.objects.get(name="Areað Irector") state = GroupStateName.objects.get(slug="bof") empty_outbox() r = self.client.post(url, @@ -594,15 +595,15 @@ class MilestoneTests(TestCase): r = self.client.get(url) self.assertEqual(r.status_code, 200) - self.assertTrue(m1.desc in r.content) - self.assertTrue(m2.desc not in r.content) + self.assertTrue(m1.desc in unicontent(r)) + self.assertTrue(m2.desc not in unicontent(r)) url = urlreverse('group_edit_charter_milestones', kwargs=dict(group_type=group.type_id, acronym=group.acronym)) r = self.client.get(url) self.assertEqual(r.status_code, 200) - self.assertTrue(m1.desc not in r.content) - self.assertTrue(m2.desc in r.content) + self.assertTrue(m1.desc not in unicontent(r)) + self.assertTrue(m2.desc in unicontent(r)) def test_add_milestone(self): m1, m2, group = self.create_test_milestones() @@ -936,32 +937,32 @@ expand-ames-chairs@virtual.ietf.org mars_chair@ietf for testdict in [dict(acronym="mars"),dict(acronym="mars",group_type="wg")]: url = urlreverse('old_group_email_aliases', kwargs=testdict) r = self.client.get(url,follow=True) - self.assertTrue(all([x in r.content for x in ['mars-ads@','mars-chairs@']])) - self.assertFalse(any([x in r.content for x in ['ames-ads@','ames-chairs@']])) + self.assertTrue(all([x in unicontent(r) for x in ['mars-ads@','mars-chairs@']])) + self.assertFalse(any([x in unicontent(r) for x in ['ames-ads@','ames-chairs@']])) url = urlreverse('ietf.group.info.email_aliases', kwargs=dict()) login_testing_unauthorized(self, "plain", url) r = self.client.get(url) self.assertTrue(r.status_code,200) - self.assertTrue(all([x in r.content for x in ['mars-ads@','mars-chairs@','ames-ads@','ames-chairs@']])) + self.assertTrue(all([x in unicontent(r) for x in ['mars-ads@','mars-chairs@','ames-ads@','ames-chairs@']])) url = urlreverse('ietf.group.info.email_aliases', kwargs=dict(group_type="wg")) r = self.client.get(url) self.assertEqual(r.status_code,200) - self.assertTrue('mars-ads@' in r.content) + self.assertTrue('mars-ads@' in unicontent(r)) url = urlreverse('ietf.group.info.email_aliases', kwargs=dict(group_type="rg")) r = self.client.get(url) self.assertEqual(r.status_code,200) - self.assertFalse('mars-ads@' in r.content) + self.assertFalse('mars-ads@' in unicontent(r)) def testExpansions(self): url = urlreverse('ietf.group.info.email', kwargs=dict(acronym="mars")) r = self.client.get(url) self.assertEqual(r.status_code,200) - self.assertTrue('Email Aliases' in r.content) - self.assertTrue('mars-ads@ietf.org' in r.content) - self.assertTrue('group_personnel_change' in r.content) + self.assertTrue('Email Aliases' in unicontent(r)) + self.assertTrue('mars-ads@ietf.org' in unicontent(r)) + self.assertTrue('group_personnel_change' in unicontent(r)) diff --git a/ietf/idindex/tests.py b/ietf/idindex/tests.py index 556eff881..56451baa3 100644 --- a/ietf/idindex/tests.py +++ b/ietf/idindex/tests.py @@ -97,9 +97,9 @@ class IndexTests(TestCase): self.assertEqual(t[12], ".pdf,.txt") self.assertEqual(t[13], draft.title) author = draft.documentauthor_set.order_by("order").get() - self.assertEqual(t[14], "%s <%s>" % (author.author.person.name, author.author.address)) - self.assertEqual(t[15], "%s <%s>" % (draft.shepherd.person.name, draft.shepherd.address)) - self.assertEqual(t[16], "%s <%s>" % (draft.ad, draft.ad.email_address())) + self.assertEqual(t[14], u"%s <%s>" % (author.author.person.name, author.author.address)) + self.assertEqual(t[15], u"%s <%s>" % (draft.shepherd.person.name, draft.shepherd.address)) + self.assertEqual(t[16], u"%s <%s>" % (draft.ad, draft.ad.email_address())) # test RFC diff --git a/ietf/iesg/tests.py b/ietf/iesg/tests.py index 295c00c67..1aa0d8f1e 100644 --- a/ietf/iesg/tests.py +++ b/ietf/iesg/tests.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- import os import shutil import json @@ -16,7 +17,7 @@ from ietf.iesg.models import TelechatDate from ietf.name.models import StreamName from ietf.person.models import Person from ietf.utils.test_data import make_test_data -from ietf.utils.test_utils import TestCase, login_testing_unauthorized +from ietf.utils.test_utils import TestCase, login_testing_unauthorized, unicontent class IESGTests(TestCase): def test_feed(self): @@ -34,8 +35,8 @@ class IESGTests(TestCase): r = self.client.get(urlreverse("ietf.iesg.views.discusses")) self.assertEqual(r.status_code, 200) - self.assertTrue(draft.name in r.content) - self.assertTrue(pos.ad.plain_name() in r.content) + self.assertTrue(draft.name in unicontent(r)) + self.assertTrue(pos.ad.plain_name() in unicontent(r)) def test_milestones_needing_review(self): draft = make_test_data() @@ -49,21 +50,21 @@ class IESGTests(TestCase): login_testing_unauthorized(self, "ad", url) r = self.client.get(url) self.assertEqual(r.status_code, 200) - self.assertTrue(m.desc in r.content) + self.assertTrue(m.desc in unicontent(r)) def test_review_decisions(self): draft = make_test_data() e = DocEvent(type="iesg_approved") e.doc = draft - e.by = Person.objects.get(name="Aread Irector") + e.by = Person.objects.get(name="Areað Irector") e.save() url = urlreverse('ietf.iesg.views.review_decisions') r = self.client.get(url) self.assertEqual(r.status_code, 200) - self.assertTrue(draft.name in r.content) + self.assertTrue(draft.name in unicontent(r)) class IESGAgendaTests(TestCase): def setUp(self): @@ -81,7 +82,7 @@ class IESGAgendaTests(TestCase): "charter": Document.objects.filter(type="charter")[0], } - by = Person.objects.get(name="Aread Irector") + by = Person.objects.get(name="Areað Irector") date = get_agenda_date() self.draft_dir = os.path.abspath("tmp-agenda-draft-dir") @@ -112,7 +113,7 @@ class IESGAgendaTests(TestCase): telechat_event = TelechatDocEvent.objects.create( type="scheduled_for_telechat", doc=draft, - by=Person.objects.get(name="Aread Irector"), + by=Person.objects.get(name="Areað Irector"), telechat_date=date, returning_item=False) date_str = date.isoformat() @@ -272,8 +273,8 @@ class IESGAgendaTests(TestCase): self.assertEqual(r.status_code, 200) for d in self.telechat_docs.values(): - self.assertTrue(d.name in r.content) - self.assertTrue(d.title in r.content) + self.assertTrue(d.name in unicontent(r)) + self.assertTrue(d.title in unicontent(r)) def test_agenda_json(self): r = self.client.get(urlreverse("ietf.iesg.views.agenda_json")) @@ -281,11 +282,11 @@ class IESGAgendaTests(TestCase): for k, d in self.telechat_docs.iteritems(): if d.type_id == "charter": - self.assertTrue(d.group.name in r.content, "%s not in response" % k) - self.assertTrue(d.group.acronym in r.content, "%s acronym not in response" % k) + self.assertTrue(d.group.name in unicontent(r), "%s not in response" % k) + self.assertTrue(d.group.acronym in unicontent(r), "%s acronym not in response" % k) else: - self.assertTrue(d.name in r.content, "%s not in response" % k) - self.assertTrue(d.title in r.content, "%s title not in response" % k) + self.assertTrue(d.name in unicontent(r), "%s not in response" % k) + self.assertTrue(d.title in unicontent(r), "%s title not in response" % k) self.assertTrue(json.loads(r.content)) @@ -294,8 +295,8 @@ class IESGAgendaTests(TestCase): self.assertEqual(r.status_code, 200) for k, d in self.telechat_docs.iteritems(): - self.assertTrue(d.name in r.content, "%s not in response" % k) - self.assertTrue(d.title in r.content, "%s title not in response" % k) + self.assertTrue(d.name in unicontent(r), "%s not in response" % k) + self.assertTrue(d.title in unicontent(r), "%s title not in response" % k) def test_agenda_txt(self): r = self.client.get(urlreverse("ietf.iesg.views.agenda_txt")) @@ -303,11 +304,11 @@ class IESGAgendaTests(TestCase): for k, d in self.telechat_docs.iteritems(): if d.type_id == "charter": - self.assertTrue(d.group.name in r.content, "%s not in response" % k) - self.assertTrue(d.group.acronym in r.content, "%s acronym not in response" % k) + self.assertTrue(d.group.name in unicontent(r), "%s not in response" % k) + self.assertTrue(d.group.acronym in unicontent(r), "%s acronym not in response" % k) else: - self.assertTrue(d.name in r.content, "%s not in response" % k) - self.assertTrue(d.title in r.content, "%s title not in response" % k) + self.assertTrue(d.name in unicontent(r), "%s not in response" % k) + self.assertTrue(d.title in unicontent(r), "%s title not in response" % k) def test_agenda_scribe_template(self): r = self.client.get(urlreverse("ietf.iesg.views.agenda_scribe_template")) @@ -317,8 +318,8 @@ class IESGAgendaTests(TestCase): if d.type_id == "charter": continue # scribe template doesn't contain chartering info - self.assertTrue(d.name in r.content, "%s not in response" % k) - self.assertTrue(d.title in r.content, "%s title not in response" % k) + self.assertTrue(d.name in unicontent(r), "%s not in response" % k) + self.assertTrue(d.title in unicontent(r), "%s title not in response" % k) def test_agenda_moderator_package(self): url = urlreverse("ietf.iesg.views.agenda_moderator_package") @@ -328,11 +329,11 @@ class IESGAgendaTests(TestCase): for k, d in self.telechat_docs.iteritems(): if d.type_id == "charter": - self.assertTrue(d.group.name in r.content, "%s not in response" % k) - self.assertTrue(d.group.acronym in r.content, "%s acronym not in response" % k) + self.assertTrue(d.group.name in unicontent(r), "%s not in response" % k) + self.assertTrue(d.group.acronym in unicontent(r), "%s acronym not in response" % k) else: - self.assertTrue(d.name in r.content, "%s not in response" % k) - self.assertTrue(d.title in r.content, "%s title not in response" % k) + self.assertTrue(d.name in unicontent(r), "%s not in response" % k) + self.assertTrue(d.title in unicontent(r), "%s title not in response" % k) def test_agenda_package(self): url = urlreverse("ietf.iesg.views.agenda_package") @@ -342,11 +343,11 @@ class IESGAgendaTests(TestCase): for k, d in self.telechat_docs.iteritems(): if d.type_id == "charter": - self.assertTrue(d.group.name in r.content, "%s not in response" % k) - self.assertTrue(d.group.acronym in r.content, "%s acronym not in response" % k) + self.assertTrue(d.group.name in unicontent(r), "%s not in response" % k) + self.assertTrue(d.group.acronym in unicontent(r), "%s acronym not in response" % k) else: - self.assertTrue(d.name in r.content, "%s not in response" % k) - self.assertTrue(d.title in r.content, "%s title not in response" % k) + self.assertTrue(d.name in unicontent(r), "%s not in response" % k) + self.assertTrue(d.title in unicontent(r), "%s title not in response" % k) def test_agenda_documents_txt(self): url = urlreverse("ietf.iesg.views.agenda_documents_txt") @@ -354,7 +355,7 @@ class IESGAgendaTests(TestCase): self.assertEqual(r.status_code, 200) for k, d in self.telechat_docs.iteritems(): - self.assertTrue(d.name in r.content, "%s not in response" % k) + self.assertTrue(d.name in unicontent(r), "%s not in response" % k) def test_agenda_documents(self): url = urlreverse("ietf.iesg.views.agenda_documents") @@ -362,8 +363,8 @@ class IESGAgendaTests(TestCase): self.assertEqual(r.status_code, 200) for k, d in self.telechat_docs.iteritems(): - self.assertTrue(d.name in r.content, "%s not in response" % k) - self.assertTrue(d.title in r.content, "%s title not in response" % k) + self.assertTrue(d.name in unicontent(r), "%s not in response" % k) + self.assertTrue(d.title in unicontent(r), "%s title not in response" % k) def test_agenda_telechat_docs(self): d1 = self.telechat_docs["ietf_draft"] @@ -402,7 +403,7 @@ class RescheduleOnAgendaTests(TestCase): # add to schedule e = TelechatDocEvent(type="scheduled_for_telechat") e.doc = draft - e.by = Person.objects.get(name="Aread Irector") + e.by = Person.objects.get(name="Areað Irector") e.telechat_date = TelechatDate.objects.active()[0].date e.returning_item = True e.save() diff --git a/ietf/ietfauth/tests.py b/ietf/ietfauth/tests.py index 15c212458..a613c9b53 100644 --- a/ietf/ietfauth/tests.py +++ b/ietf/ietfauth/tests.py @@ -34,7 +34,7 @@ from urlparse import urlsplit from django.core.urlresolvers import reverse as urlreverse -from ietf.utils.test_utils import TestCase, login_testing_unauthorized +from ietf.utils.test_utils import TestCase, login_testing_unauthorized, unicontent from ietf.utils.test_data import make_test_data class IetfAuthTests(TestCase): @@ -75,7 +75,7 @@ class IetfAuthTests(TestCase): # get r = self.client.get(url) self.assertEqual(r.status_code, 200) - self.assertTrue("plain" in r.content) + self.assertTrue("plain" in unicontent(r)) # post # ... fill in diff --git a/ietf/ipr/tests.py b/ietf/ipr/tests.py index 9cbc5c110..6cadf978b 100644 --- a/ietf/ipr/tests.py +++ b/ietf/ipr/tests.py @@ -14,7 +14,7 @@ from ietf.ipr.models import (IprDisclosureBase,GenericIprDisclosure,HolderIprDis ThirdPartyIprDisclosure,RelatedIpr) from ietf.ipr.utils import get_genitive, get_ipr_summary from ietf.message.models import Message -from ietf.utils.test_utils import TestCase, login_testing_unauthorized +from ietf.utils.test_utils import TestCase, login_testing_unauthorized, unicontent from ietf.utils.test_data import make_test_data from ietf.utils.mail import outbox, empty_outbox from ietf.mailtrigger.utils import gather_address_lists @@ -110,14 +110,14 @@ class IprTests(TestCase): ipr = IprDisclosureBase.objects.get(title='Statement regarding rights') r = self.client.get(urlreverse("ipr_showlist")) self.assertEqual(r.status_code, 200) - self.assertTrue(ipr.title in r.content) + self.assertTrue(ipr.title in unicontent(r)) def test_show_posted(self): make_test_data() ipr = IprDisclosureBase.objects.get(title='Statement regarding rights') r = self.client.get(urlreverse("ipr_show", kwargs=dict(id=ipr.pk))) self.assertEqual(r.status_code, 200) - self.assertTrue(ipr.title in r.content) + self.assertTrue(ipr.title in unicontent(r)) def test_show_parked(self): make_test_data() @@ -146,15 +146,15 @@ class IprTests(TestCase): ipr.set_state('removed') r = self.client.get(urlreverse("ipr_show", kwargs=dict(id=ipr.pk))) self.assertEqual(r.status_code, 200) - self.assertTrue('This IPR disclosure was removed' in r.content) + self.assertTrue('This IPR disclosure was removed' in unicontent(r)) def test_iprs_for_drafts(self): draft = make_test_data() ipr = IprDisclosureBase.objects.get(title='Statement regarding rights') r = self.client.get(urlreverse("ietf.ipr.views.by_draft_txt")) self.assertEqual(r.status_code, 200) - self.assertTrue(draft.name in r.content) - self.assertTrue(str(ipr.pk) in r.content) + self.assertTrue(draft.name in unicontent(r)) + self.assertTrue(str(ipr.pk) in unicontent(r)) def test_iprs_for_drafts_recursive(self): draft = make_test_data() @@ -162,15 +162,15 @@ class IprTests(TestCase): ipr = IprDisclosureBase.objects.get(title='Statement regarding rights') r = self.client.get(urlreverse("ietf.ipr.views.by_draft_recursive_txt")) self.assertEqual(r.status_code, 200) - self.assertTrue(draft.name in r.content) + self.assertTrue(draft.name in unicontent(r)) for alias in replaced: - self.assertTrue(alias.name in r.content) - self.assertTrue(str(ipr.pk) in r.content) + self.assertTrue(alias.name in unicontent(r)) + self.assertTrue(str(ipr.pk) in unicontent(r)) def test_about(self): r = self.client.get(urlreverse("ietf.ipr.views.about")) self.assertEqual(r.status_code, 200) - self.assertTrue("File a disclosure" in r.content) + self.assertTrue("File a disclosure" in unicontent(r)) def test_search(self): draft = make_test_data() @@ -186,68 +186,68 @@ class IprTests(TestCase): # find by id r = self.client.get(url + "?submit=draft&id=%s" % draft.name) self.assertEqual(r.status_code, 200) - self.assertTrue(ipr.title in r.content) + self.assertTrue(ipr.title in unicontent(r)) # find draft r = self.client.get(url + "?submit=draft&draft=%s" % draft.name) self.assertEqual(r.status_code, 200) - self.assertTrue(ipr.title in r.content) + self.assertTrue(ipr.title in unicontent(r)) # search + select document r = self.client.get(url + "?submit=draft&draft=draft") self.assertEqual(r.status_code, 200) - self.assertTrue(draft.name in r.content) - self.assertTrue(ipr.title not in r.content) + self.assertTrue(draft.name in unicontent(r)) + self.assertTrue(ipr.title not in unicontent(r)) DocAlias.objects.create(name="rfc321", document=draft) # find RFC r = self.client.get(url + "?submit=rfc&rfc=321") self.assertEqual(r.status_code, 200) - self.assertTrue(ipr.title in r.content) + self.assertTrue(ipr.title in unicontent(r)) # find by patent owner r = self.client.get(url + "?submit=holder&holder=%s" % ipr.holder_legal_name) self.assertEqual(r.status_code, 200) - self.assertTrue(ipr.title in r.content) + self.assertTrue(ipr.title in unicontent(r)) # find by patent info r = self.client.get(url + "?submit=patent&patent=%s" % ipr.patent_info) self.assertEqual(r.status_code, 200) - self.assertTrue(ipr.title in r.content) + self.assertTrue(ipr.title in unicontent(r)) r = self.client.get(url + "?submit=patent&patent=US12345") self.assertEqual(r.status_code, 200) - self.assertTrue(ipr.title in r.content) + self.assertTrue(ipr.title in unicontent(r)) # find by group acronym r = self.client.get(url + "?submit=group&group=%s" % draft.group.pk) self.assertEqual(r.status_code, 200) - self.assertTrue(ipr.title in r.content) + self.assertTrue(ipr.title in unicontent(r)) # find by doc title r = self.client.get(url + "?submit=doctitle&doctitle=%s" % urllib.quote(draft.title)) self.assertEqual(r.status_code, 200) - self.assertTrue(ipr.title in r.content) + self.assertTrue(ipr.title in unicontent(r)) # find by ipr title r = self.client.get(url + "?submit=iprtitle&iprtitle=%s" % urllib.quote(ipr.title)) self.assertEqual(r.status_code, 200) - self.assertTrue(ipr.title in r.content) + self.assertTrue(ipr.title in unicontent(r)) def test_feed(self): make_test_data() ipr = IprDisclosureBase.objects.get(title='Statement regarding rights') r = self.client.get("/feed/ipr/") self.assertEqual(r.status_code, 200) - self.assertTrue(ipr.title in r.content) + self.assertTrue(ipr.title in unicontent(r)) def test_sitemap(self): make_test_data() ipr = IprDisclosureBase.objects.get(title='Statement regarding rights') r = self.client.get("/sitemap-ipr.xml") self.assertEqual(r.status_code, 200) - self.assertTrue("/ipr/%s/" % ipr.pk in r.content) + self.assertTrue("/ipr/%s/" % ipr.pk in unicontent(r)) def test_new_generic(self): """Add a new generic disclosure. Note: submitter does not need to be logged in. @@ -275,7 +275,7 @@ class IprTests(TestCase): "notes": "some notes" }) self.assertEqual(r.status_code, 200) - self.assertTrue("Your IPR disclosure has been submitted" in r.content) + self.assertTrue("Your IPR disclosure has been submitted" in unicontent(r)) self.assertEqual(len(outbox),1) self.assertTrue('New IPR Submission' in outbox[0]['Subject']) self.assertTrue('ietf-ipr@' in outbox[0]['To']) @@ -315,7 +315,7 @@ class IprTests(TestCase): }) self.assertEqual(r.status_code, 200) # print r.content - self.assertTrue("Your IPR disclosure has been submitted" in r.content) + self.assertTrue("Your IPR disclosure has been submitted" in unicontent(r)) iprs = IprDisclosureBase.objects.filter(title__icontains=draft.name) self.assertEqual(len(iprs), 1) @@ -352,7 +352,7 @@ class IprTests(TestCase): "submitter_email": "test@holder.com", }) self.assertEqual(r.status_code, 200) - self.assertTrue("Your IPR disclosure has been submitted" in r.content) + self.assertTrue("Your IPR disclosure has been submitted" in unicontent(r)) iprs = IprDisclosureBase.objects.filter(title__icontains="belonging to Test Legal") self.assertEqual(len(iprs), 1) @@ -391,7 +391,7 @@ class IprTests(TestCase): "submitter_email": "test@holder.com", }) self.assertEqual(r.status_code, 200) - self.assertTrue("Your IPR disclosure has been submitted" in r.content) + self.assertTrue("Your IPR disclosure has been submitted" in unicontent(r)) iprs = IprDisclosureBase.objects.filter(title__icontains=draft.name) self.assertEqual(len(iprs), 1) @@ -422,10 +422,10 @@ class IprTests(TestCase): # private comment r = self.client.post(url, dict(comment='Private comment',private=True),follow=True) self.assertEqual(r.status_code,200) - self.assertTrue('Private comment' in r.content) + self.assertTrue('Private comment' in unicontent(r)) self.client.logout() r = self.client.get(url) - self.assertFalse('Private comment' in r.content) + self.assertFalse('Private comment' in unicontent(r)) def test_addemail(self): make_test_data() diff --git a/ietf/liaisons/tests.py b/ietf/liaisons/tests.py index 821cb3151..e5c4bb6d4 100644 --- a/ietf/liaisons/tests.py +++ b/ietf/liaisons/tests.py @@ -8,7 +8,7 @@ from django.db.models import Q from StringIO import StringIO from pyquery import PyQuery -from ietf.utils.test_utils import TestCase, login_testing_unauthorized +from ietf.utils.test_utils import TestCase, login_testing_unauthorized, unicontent from ietf.utils.test_data import make_test_data, create_person from ietf.utils.mail import outbox @@ -113,7 +113,7 @@ class LiaisonTests(TestCase): r = self.client.get(urlreverse('ietf.liaisons.views.liaison_list')) self.assertEqual(r.status_code, 200) - self.assertTrue(liaison.title in r.content) + self.assertTrue(liaison.title in unicontent(r)) def test_details(self): make_test_data() @@ -121,7 +121,7 @@ class LiaisonTests(TestCase): r = self.client.get(urlreverse("ietf.liaisons.views.liaison_detail", kwargs={ 'object_id': liaison.pk })) self.assertEqual(r.status_code, 200) - self.assertTrue(liaison.title in r.content) + self.assertTrue(liaison.title in unicontent(r)) def test_feeds(self): make_test_data() @@ -129,19 +129,19 @@ class LiaisonTests(TestCase): r = self.client.get('/feed/liaison/recent/') self.assertEqual(r.status_code, 200) - self.assertTrue(liaison.title in r.content) + self.assertTrue(liaison.title in unicontent(r)) r = self.client.get('/feed/liaison/from/%s/' % liaison.from_groups.first().acronym) self.assertEqual(r.status_code, 200) - self.assertTrue(liaison.title in r.content) + self.assertTrue(liaison.title in unicontent(r)) r = self.client.get('/feed/liaison/to/%s/' % liaison.to_groups.first().acronym) self.assertEqual(r.status_code, 200) - self.assertTrue(liaison.title in r.content) + self.assertTrue(liaison.title in unicontent(r)) r = self.client.get('/feed/liaison/subject/marsmen/') self.assertEqual(r.status_code, 200) - self.assertTrue(liaison.title in r.content) + self.assertTrue(liaison.title in unicontent(r)) def test_sitemap(self): make_test_data() @@ -149,7 +149,7 @@ class LiaisonTests(TestCase): r = self.client.get('/sitemap-liaison.xml') self.assertEqual(r.status_code, 200) - self.assertTrue(urlreverse("ietf.liaisons.views.liaison_detail", kwargs={ 'object_id': liaison.pk }) in r.content) + self.assertTrue(urlreverse("ietf.liaisons.views.liaison_detail", kwargs={ 'object_id': liaison.pk }) in unicontent(r)) def test_help_pages(self): self.assertEqual(self.client.get('/liaison/help/').status_code, 200) @@ -381,14 +381,14 @@ class LiaisonManagementTests(TestCase): login_testing_unauthorized(self, "ad", url) r = self.client.get(url) self.assertEqual(r.status_code, 200) - self.assertTrue(liaison.title in r.content) + self.assertTrue(liaison.title in unicontent(r)) # check the detail page / unauthorized url = urlreverse('ietf.liaisons.views.liaison_detail', kwargs=dict(object_id=liaison.pk)) self.client.logout() r = self.client.get(url) self.assertEqual(r.status_code, 200) - self.assertTrue(liaison.title in r.content) + self.assertTrue(liaison.title in unicontent(r)) q = PyQuery(r.content) self.assertEqual(len(q('form input[name=approved]')), 0) @@ -396,7 +396,7 @@ class LiaisonManagementTests(TestCase): self.client.login(username="ulm-liaiman", password="ulm-liaiman+password") r = self.client.get(url) self.assertEqual(r.status_code, 200) - self.assertTrue(liaison.title in r.content) + self.assertTrue(liaison.title in unicontent(r)) q = PyQuery(r.content) from ietf.liaisons.utils import can_edit_liaison user = User.objects.get(username='ulm-liaiman') @@ -1107,7 +1107,7 @@ class LiaisonManagementTests(TestCase): r = self.client.post(url,get_liaison_post_data(),follow=True) self.assertEqual(r.status_code, 200) - self.assertTrue('As an IETF Liaison Manager you can not send incoming liaison statements' in r.content) + self.assertTrue('As an IETF Liaison Manager you can not send incoming liaison statements' in unicontent(r)) def test_deadline_field(self): '''Required for action, comment, not info, response''' @@ -1147,7 +1147,7 @@ class LiaisonManagementTests(TestCase): r = self.client.post(url,post_data,follow=True) self.assertEqual(r.status_code, 200) - self.assertTrue('You must provide a body or attachment files' in r.content) + self.assertTrue('You must provide a body or attachment files' in unicontent(r)) def test_send_sdo_reminder(self): make_test_data() diff --git a/ietf/liaisons/views.py b/ietf/liaisons/views.py index f39c4595b..cc4563cdc 100644 --- a/ietf/liaisons/views.py +++ b/ietf/liaisons/views.py @@ -84,7 +84,7 @@ def _find_person_in_emails(liaison, person): def contacts_from_roles(roles): '''Returns contact string for given roles''' - emails = [ '{} <{}>'.format(r.person.plain_name(),r.email.address) for r in roles ] + emails = [ u'{} <{}>'.format(r.person.plain_name(),r.email.address) for r in roles ] return ','.join(emails) def get_cc(group): @@ -104,17 +104,17 @@ def get_cc(group): elif group.type_id == 'area': emails.append(EMAIL_ALIASES['IETFCHAIR']) ad_roles = group.role_set.filter(name='ad') - emails.extend([ '{} <{}>'.format(r.person.plain_name(),r.email.address) for r in ad_roles ]) + emails.extend([ u'{} <{}>'.format(r.person.plain_name(),r.email.address) for r in ad_roles ]) elif group.type_id == 'wg': ad_roles = group.parent.role_set.filter(name='ad') - emails.extend([ '{} <{}>'.format(r.person.plain_name(),r.email.address) for r in ad_roles ]) + emails.extend([ u'{} <{}>'.format(r.person.plain_name(),r.email.address) for r in ad_roles ]) chair_roles = group.role_set.filter(name='chair') - emails.extend([ '{} <{}>'.format(r.person.plain_name(),r.email.address) for r in chair_roles ]) + emails.extend([ u'{} <{}>'.format(r.person.plain_name(),r.email.address) for r in chair_roles ]) if group.list_email: - emails.append('{} Discussion List <{}>'.format(group.name,group.list_email)) + emails.append(u'{} Discussion List <{}>'.format(group.name,group.list_email)) elif group.type_id == 'sdo': liaiman_roles = group.role_set.filter(name='liaiman') - emails.extend([ '{} <{}>'.format(r.person.plain_name(),r.email.address) for r in liaiman_roles ]) + emails.extend([ u'{} <{}>'.format(r.person.plain_name(),r.email.address) for r in liaiman_roles ]) # explicit CCs if group.liaisonstatementgroupcontacts_set.exists() and group.liaisonstatementgroupcontacts_set.first().cc_contacts: diff --git a/ietf/mailtrigger/tests.py b/ietf/mailtrigger/tests.py index 3deb7821b..6a319021f 100644 --- a/ietf/mailtrigger/tests.py +++ b/ietf/mailtrigger/tests.py @@ -1,6 +1,6 @@ from django.core.urlresolvers import reverse as urlreverse -from ietf.utils.test_utils import TestCase +from ietf.utils.test_utils import TestCase, unicontent from ietf.utils.test_data import make_test_data class EventMailTests(TestCase): @@ -13,22 +13,22 @@ class EventMailTests(TestCase): url = urlreverse('ietf.mailtrigger.views.show_triggers') r = self.client.get(url) self.assertEqual(r.status_code, 200) - self.assertTrue('ballot_saved' in r.content) + self.assertTrue('ballot_saved' in unicontent(r)) url = urlreverse('ietf.mailtrigger.views.show_triggers',kwargs=dict(mailtrigger_slug='ballot_saved')) r = self.client.get(url) self.assertEqual(r.status_code, 200) - self.assertTrue('ballot_saved' in r.content) + self.assertTrue('ballot_saved' in unicontent(r)) def test_show_recipients(self): url = urlreverse('ietf.mailtrigger.views.show_recipients') r = self.client.get(url) self.assertEqual(r.status_code, 200) - self.assertTrue('doc_group_mail_list' in r.content) + self.assertTrue('doc_group_mail_list' in unicontent(r)) url = urlreverse('ietf.mailtrigger.views.show_recipients',kwargs=dict(recipient_slug='doc_group_mail_list')) r = self.client.get(url) self.assertEqual(r.status_code, 200) - self.assertTrue('doc_group_mail_list' in r.content) + self.assertTrue('doc_group_mail_list' in unicontent(r)) diff --git a/ietf/meeting/tests_views.py b/ietf/meeting/tests_views.py index 6a16cee5c..0e349bb6d 100644 --- a/ietf/meeting/tests_views.py +++ b/ietf/meeting/tests_views.py @@ -11,7 +11,7 @@ from pyquery import PyQuery from ietf.doc.models import Document from ietf.meeting.models import Session, TimeSlot from ietf.meeting.test_data import make_meeting_test_data -from ietf.utils.test_utils import TestCase, login_testing_unauthorized +from ietf.utils.test_utils import TestCase, login_testing_unauthorized, unicontent class MeetingTests(TestCase): def setUp(self): @@ -97,9 +97,9 @@ class MeetingTests(TestCase): self.assertTrue(session.group.parent.acronym.upper() in agenda_content) self.assertTrue(slot.location.name in agenda_content) - self.assertTrue(session.materials.get(type='agenda').external_url in r.content) - self.assertTrue(session.materials.filter(type='slides').exclude(states__type__slug='slides',states__slug='deleted').first().external_url in r.content) - self.assertFalse(session.materials.filter(type='slides',states__type__slug='slides',states__slug='deleted').first().external_url in r.content) + self.assertTrue(session.materials.get(type='agenda').external_url in unicontent(r)) + self.assertTrue(session.materials.filter(type='slides').exclude(states__type__slug='slides',states__slug='deleted').first().external_url in unicontent(r)) + self.assertFalse(session.materials.filter(type='slides',states__type__slug='slides',states__slug='deleted').first().external_url in unicontent(r)) # iCal r = self.client.get(urlreverse("ietf.meeting.views.ical_agenda", kwargs=dict(num=meeting.number)) @@ -112,10 +112,10 @@ class MeetingTests(TestCase): self.assertTrue("BEGIN:VTIMEZONE" in agenda_content) self.assertTrue("END:VTIMEZONE" in agenda_content) - self.assertTrue(session.agenda().get_absolute_url() in r.content) - self.assertTrue(session.materials.filter(type='slides').exclude(states__type__slug='slides',states__slug='deleted').first().get_absolute_url() in r.content) + self.assertTrue(session.agenda().get_absolute_url() in unicontent(r)) + self.assertTrue(session.materials.filter(type='slides').exclude(states__type__slug='slides',states__slug='deleted').first().get_absolute_url() in unicontent(r)) # 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 r.content) + #self.assertFalse(session.materials.filter(type='slides',states__type__slug='slides',states__slug='deleted').first().get_absolute_url() in unicontent(r)) # week view r = self.client.get(urlreverse("ietf.meeting.views.week_view", kwargs=dict(num=meeting.number))) @@ -129,7 +129,7 @@ class MeetingTests(TestCase): url = urlreverse("ietf.meeting.views.agenda_by_room",kwargs=dict(num=meeting.number)) login_testing_unauthorized(self,"secretary",url) r = self.client.get(url) - self.assertTrue(all([x in r.content for x in ['mars','IESG Breakfast','Test Room','Breakfast Room']])) + self.assertTrue(all([x in unicontent(r) for x in ['mars','IESG Breakfast','Test Room','Breakfast Room']])) def test_agenda_by_type(self): meeting = make_meeting_test_data() @@ -137,31 +137,31 @@ class MeetingTests(TestCase): url = urlreverse("ietf.meeting.views.agenda_by_type",kwargs=dict(num=meeting.number)) login_testing_unauthorized(self,"secretary",url) r = self.client.get(url) - self.assertTrue(all([x in r.content for x in ['mars','IESG Breakfast','Test Room','Breakfast Room']])) + self.assertTrue(all([x in unicontent(r) for x in ['mars','IESG Breakfast','Test Room','Breakfast Room']])) url = urlreverse("ietf.meeting.views.agenda_by_type",kwargs=dict(num=meeting.number,type='session')) r = self.client.get(url) - self.assertTrue(all([x in r.content for x in ['mars','Test Room']])) - self.assertFalse(any([x in r.content for x in ['IESG Breakfast','Breakfast Room']])) + self.assertTrue(all([x in unicontent(r) for x in ['mars','Test Room']])) + self.assertFalse(any([x in unicontent(r) for x in ['IESG Breakfast','Breakfast Room']])) url = urlreverse("ietf.meeting.views.agenda_by_type",kwargs=dict(num=meeting.number,type='lead')) r = self.client.get(url) - self.assertFalse(any([x in r.content for x in ['mars','Test Room']])) - self.assertTrue(all([x in r.content for x in ['IESG Breakfast','Breakfast Room']])) + self.assertFalse(any([x in unicontent(r) for x in ['mars','Test Room']])) + self.assertTrue(all([x in unicontent(r) for x in ['IESG Breakfast','Breakfast Room']])) def test_agenda_room_view(self): meeting = make_meeting_test_data() url = urlreverse("ietf.meeting.views.room_view",kwargs=dict(num=meeting.number)) login_testing_unauthorized(self,"secretary",url) r = self.client.get(url) - self.assertTrue(all([x in r.content for x in ['mars','IESG Breakfast','Test Room','Breakfast Room']])) + self.assertTrue(all([x in unicontent(r) for x in ['mars','IESG Breakfast','Test Room','Breakfast Room']])) def test_session_details(self): meeting = make_meeting_test_data() url = urlreverse("ietf.meeting.views.session_details", kwargs=dict(num=meeting.number, acronym="mars")) r = self.client.get(url) - self.assertTrue(all([x in r.content for x in ('slides','agenda','minutes')])) - self.assertFalse('deleted' in r.content) + self.assertTrue(all([x in unicontent(r) for x in ('slides','agenda','minutes')])) + self.assertFalse('deleted' in unicontent(r)) def test_materials(self): meeting = make_meeting_test_data() @@ -173,7 +173,7 @@ class MeetingTests(TestCase): r = self.client.get(urlreverse("ietf.meeting.views.session_agenda", kwargs=dict(num=meeting.number, session=session.group.acronym))) self.assertEqual(r.status_code, 200) - self.assertTrue("1. WG status" in r.content) + self.assertTrue("1. WG status" in unicontent(r)) # early materials page r = self.client.get(urlreverse("ietf.meeting.views.current_materials")) @@ -198,8 +198,8 @@ class MeetingTests(TestCase): r = self.client.get("/feed/wg-proceedings/") self.assertEqual(r.status_code, 200) - self.assertTrue("agenda" in r.content) - self.assertTrue(session.group.acronym in r.content) + self.assertTrue("agenda" in unicontent(r)) + self.assertTrue(session.group.acronym in unicontent(r)) class EditTests(TestCase): def setUp(self): @@ -215,7 +215,7 @@ class EditTests(TestCase): self.client.login(username="secretary", password="secretary+password") r = self.client.get(urlreverse("ietf.meeting.views.edit_agenda", kwargs=dict(num=meeting.number))) self.assertEqual(r.status_code, 200) - self.assertTrue("load_assignments" in r.content) + self.assertTrue("load_assignments" in unicontent(r)) def test_save_agenda_as_and_read_permissions(self): meeting = make_meeting_test_data() @@ -311,7 +311,7 @@ class EditTests(TestCase): self.client.login(username="secretary", password="secretary+password") r = self.client.get(urlreverse("ietf.meeting.views.edit_timeslots", kwargs=dict(num=meeting.number))) self.assertEqual(r.status_code, 200) - self.assertTrue(meeting.room_set.all().first().name in r.content) + self.assertTrue(meeting.room_set.all().first().name in unicontent(r)) def test_slot_to_the_right(self): meeting = make_meeting_test_data() diff --git a/ietf/message/tests.py b/ietf/message/tests.py index f1dd36b54..fc3d8f33c 100644 --- a/ietf/message/tests.py +++ b/ietf/message/tests.py @@ -2,7 +2,7 @@ import datetime from django.core.urlresolvers import reverse as urlreverse -from ietf.utils.test_utils import TestCase +from ietf.utils.test_utils import TestCase, unicontent from ietf.utils.test_data import make_test_data from ietf.utils.mail import outbox @@ -28,10 +28,10 @@ class MessageTests(TestCase): r = self.client.get(urlreverse("nomcom_announcement", kwargs=dict(message_id=msg.id))) self.assertEqual(r.status_code, 200) - self.assertTrue(msg.subject in r.content) - self.assertTrue(msg.to in r.content) - self.assertTrue(msg.frm in r.content) - self.assertTrue("Hello World!" in r.content) + self.assertTrue(msg.subject in unicontent(r)) + self.assertTrue(msg.to in unicontent(r)) + self.assertTrue(msg.frm in unicontent(r)) + self.assertTrue("Hello World!" in unicontent(r)) class SendScheduledAnnouncementsTests(TestCase): diff --git a/ietf/nomcom/tests.py b/ietf/nomcom/tests.py index 42b0a30a3..a5babc108 100644 --- a/ietf/nomcom/tests.py +++ b/ietf/nomcom/tests.py @@ -13,7 +13,7 @@ from django.contrib.auth.models import User import debug # pyflakes:ignore -from ietf.utils.test_utils import login_testing_unauthorized, TestCase +from ietf.utils.test_utils import login_testing_unauthorized, TestCase, unicontent from ietf.utils.mail import outbox, empty_outbox from ietf.person.models import Email, Person @@ -449,9 +449,9 @@ class NomcomViewsTest(TestCase): r = self.client.get(reverse('ietf.nomcom.views.announcements')) self.assertEqual(r.status_code, 200) - self.assertTrue(("Messages from %s" % nomcom.time.year) in r.content) - self.assertTrue(nomcom.role_set.filter(name="chair")[0].person.email_address() in r.content) - self.assertTrue(msg.subject in r.content) + self.assertTrue(("Messages from %s" % nomcom.time.year) in unicontent(r)) + self.assertTrue(nomcom.role_set.filter(name="chair")[0].person.email_address() in unicontent(r)) + self.assertTrue(msg.subject in unicontent(r)) def test_requirements_view(self): diff --git a/ietf/secr/groups/tests.py b/ietf/secr/groups/tests.py index c7849428b..3a2cab37c 100644 --- a/ietf/secr/groups/tests.py +++ b/ietf/secr/groups/tests.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- from django.core.urlresolvers import reverse from ietf.utils.test_utils import TestCase from ietf.group.models import Group @@ -89,7 +90,7 @@ class GroupsTest(TestCase): make_test_data() group = Group.objects.filter(acronym='mars')[0] area = Group.objects.filter(acronym='farfut')[0] - ad = Person.objects.get(name='Aread Irector') + ad = Person.objects.get(name='Areað Irector') url = reverse('groups_edit', kwargs={'acronym':group.acronym}) target = reverse('groups_view', kwargs={'acronym':group.acronym}) post_data = {'acronym':group.acronym, @@ -120,7 +121,7 @@ class GroupsTest(TestCase): def test_people_add(self): make_test_data() - person = Person.objects.get(name='Aread Irector') + person = Person.objects.get(name='Areað Irector') group = Group.objects.filter(acronym='mars')[0] url = reverse('groups_people', kwargs={'acronym':group.acronym}) post_data = {'name':'chair', diff --git a/ietf/secr/proceedings/tests.py b/ietf/secr/proceedings/tests.py index 90438fc89..7cbdfa0e0 100644 --- a/ietf/secr/proceedings/tests.py +++ b/ietf/secr/proceedings/tests.py @@ -12,7 +12,7 @@ from ietf.group.models import Group from ietf.meeting.models import Meeting, Session from ietf.meeting.test_data import make_meeting_test_data from ietf.utils.test_data import make_test_data -from ietf.utils.test_utils import TestCase +from ietf.utils.test_utils import TestCase, unicontent from ietf.name.models import SessionStatusName from ietf.secr.utils.meeting import get_proceedings_path @@ -90,12 +90,12 @@ class BluesheetTestCase(TestCase): dict(acronym='mars',meeting_id=meeting.id,material_type='bluesheets',file=upfile),follow=True) self.assertEqual(r.status_code, 200) doc = Document.objects.get(type='bluesheets') - self.failUnless(doc.external_url in r.content) + self.failUnless(doc.external_url in unicontent(r)) self.failUnless(os.path.exists(os.path.join(doc.get_file_path(),doc.external_url))) # test that proceedings has bluesheets on it path = get_proceedings_path(meeting,group) self.failUnless(os.path.exists(path)) with open(path) as f: data = f.read() - self.failUnless(doc.external_url in data) + self.failUnless(doc.external_url.encode('utf-8') in data) diff --git a/ietf/secr/roles/tests.py b/ietf/secr/roles/tests.py index 698da7d5e..683424592 100644 --- a/ietf/secr/roles/tests.py +++ b/ietf/secr/roles/tests.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- from django.core.urlresolvers import reverse from ietf.utils.test_utils import TestCase @@ -37,7 +38,7 @@ class MainTestCase(TestCase): def test_roles_add(self): make_test_data() augment_data() - person = Person.objects.get(name='Aread Irector') + person = Person.objects.get(name='Areað Irector') group = Group.objects.filter(acronym='mars')[0] url = reverse('roles') target = reverse('roles') + '?group=%s' % group.acronym diff --git a/ietf/secr/sreq/tests.py b/ietf/secr/sreq/tests.py index 98809774b..1b81b8a93 100644 --- a/ietf/secr/sreq/tests.py +++ b/ietf/secr/sreq/tests.py @@ -1,6 +1,6 @@ from django.core.urlresolvers import reverse -from ietf.utils.test_utils import TestCase +from ietf.utils.test_utils import TestCase, unicontent from ietf.group.models import Group #from ietf.meeting.models import Session #from ietf.utils.test_data import make_test_data @@ -67,7 +67,7 @@ class SubmitRequestCase(TestCase): self.assertEqual(r.status_code, 200) q = PyQuery(r.content) self.assertEqual(len(q('#session-request-form')),1) - self.assertTrue('You must enter a length for all sessions' in r.content) + self.assertTrue('You must enter a length for all sessions' in unicontent(r)) class LockAppTestCase(TestCase): def test_edit_request(self): @@ -136,11 +136,11 @@ class NotMeetingCase(TestCase): # This is a sign of a problem - a get shouldn't have a side-effect like this one does self.assertEqual(r.status_code, 200) - self.assertTrue('A message was sent to notify not having a session' in r.content) + self.assertTrue('A message was sent to notify not having a session' in unicontent(r)) r = self.client.get(url,follow=True) self.assertEqual(r.status_code, 200) - self.assertTrue('is already marked as not meeting' in r.content) + self.assertTrue('is already marked as not meeting' in unicontent(r)) self.assertEqual(len(outbox),1) self.assertTrue('Not having a session' in outbox[0]['Subject']) diff --git a/ietf/submit/tests.py b/ietf/submit/tests.py index 989baf258..69f4de312 100644 --- a/ietf/submit/tests.py +++ b/ietf/submit/tests.py @@ -11,7 +11,7 @@ from pyquery import PyQuery import debug # pyflakes:ignore -from ietf.utils.test_utils import login_testing_unauthorized +from ietf.utils.test_utils import login_testing_unauthorized, unicontent from ietf.utils.test_data import make_test_data from ietf.utils.mail import outbox from ietf.utils.test_utils import TestCase @@ -279,7 +279,7 @@ class SubmitTests(TestCase): status_url = r["Location"] r = self.client.get(status_url) self.assertEqual(r.status_code, 200) - self.assertTrue("The submission is pending approval by the authors" in r.content) + self.assertTrue("The submission is pending approval by the authors" in unicontent(r)) self.assertEqual(len(outbox), mailbox_before + 1) confirm_email = outbox[-1] @@ -361,7 +361,7 @@ class SubmitTests(TestCase): status_url = r["Location"] r = self.client.get(status_url) self.assertEqual(r.status_code, 200) - self.assertTrue("The submission is pending email authentication" in r.content) + self.assertTrue("The submission is pending email authentication" in unicontent(r)) self.assertEqual(len(outbox), mailbox_before + 1) confirm_email = outbox[-1] @@ -408,16 +408,16 @@ class SubmitTests(TestCase): replaced_alias = draft.docalias_set.first() r = self.supply_extra_metadata(name, status_url, "Submitter Name", "author@example.com", replaces=str(replaced_alias.pk)) self.assertEqual(r.status_code, 200) - self.assertTrue('cannot replace itself' in r.content) + self.assertTrue('cannot replace itself' in unicontent(r)) replaced_alias = DocAlias.objects.get(name='draft-ietf-random-thing') r = self.supply_extra_metadata(name, status_url, "Submitter Name", "author@example.com", replaces=str(replaced_alias.pk)) self.assertEqual(r.status_code, 200) - self.assertTrue('cannot replace an RFC' in r.content) + self.assertTrue('cannot replace an RFC' in unicontent(r)) replaced_alias.document.set_state(State.objects.get(type='draft-iesg',slug='approved')) replaced_alias.document.set_state(State.objects.get(type='draft',slug='active')) r = self.supply_extra_metadata(name, status_url, "Submitter Name", "author@example.com", replaces=str(replaced_alias.pk)) self.assertEqual(r.status_code, 200) - self.assertTrue('approved by the IESG and cannot' in r.content) + self.assertTrue('approved by the IESG and cannot' in unicontent(r)) r = self.supply_extra_metadata(name, status_url, "Submitter Name", "author@example.com", replaces='') self.assertEqual(r.status_code, 302) status_url = r["Location"] @@ -587,7 +587,7 @@ class SubmitTests(TestCase): # search status page r = self.client.get(urlreverse("submit_search_submission")) self.assertEqual(r.status_code, 200) - self.assertTrue("submission status" in r.content) + self.assertTrue("submission status" in unicontent(r)) # search r = self.client.post(urlreverse("submit_search_submission"), dict(name=name)) @@ -597,7 +597,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 r.content.lower()) + self.assertTrue(("submission status of %s" % name) in unicontent(r).lower()) q = PyQuery(r.content) adjust_button = q('[type=submit]:contains("Adjust")') self.assertEqual(len(adjust_button), 0) diff --git a/ietf/sync/tests.py b/ietf/sync/tests.py index c90e5b0a0..e2efd4411 100644 --- a/ietf/sync/tests.py +++ b/ietf/sync/tests.py @@ -14,7 +14,7 @@ from ietf.person.models import Person from ietf.sync import iana, rfceditor from ietf.utils.mail import outbox, empty_outbox from ietf.utils.test_data import make_test_data -from ietf.utils.test_utils import login_testing_unauthorized +from ietf.utils.test_utils import login_testing_unauthorized, unicontent from ietf.utils.test_utils import TestCase @@ -202,7 +202,7 @@ ICANN login_testing_unauthorized(self, "secretary", url) r = self.client.get(url) self.assertEqual(r.status_code, 200) - self.assertTrue("new changes at" in r.content) + self.assertTrue("new changes at" in unicontent(r)) # we don't actually try posting as that would trigger a real run @@ -427,7 +427,7 @@ class DiscrepanciesTests(TestCase): doc.set_state(State.objects.get(used=True, type="draft-iesg", slug="ann")) r = self.client.get(urlreverse("ietf.sync.views.discrepancies")) - self.assertTrue(doc.name in r.content) + self.assertTrue(doc.name in unicontent(r)) # draft with IANA state "In Progress" but RFC Editor state not IANA doc = Document.objects.create(name="draft-ietf-test2", type_id="draft") @@ -436,7 +436,7 @@ class DiscrepanciesTests(TestCase): doc.set_state(State.objects.get(used=True, type="draft-rfceditor", slug="auth")) r = self.client.get(urlreverse("ietf.sync.views.discrepancies")) - self.assertTrue(doc.name in r.content) + self.assertTrue(doc.name in unicontent(r)) # draft with IANA state "Waiting on RFC Editor" or "RFC-Ed-Ack" # but RFC Editor state is IANA @@ -446,7 +446,7 @@ class DiscrepanciesTests(TestCase): doc.set_state(State.objects.get(used=True, type="draft-rfceditor", slug="iana")) r = self.client.get(urlreverse("ietf.sync.views.discrepancies")) - self.assertTrue(doc.name in r.content) + self.assertTrue(doc.name in unicontent(r)) # draft with state other than "RFC Ed Queue" or "RFC Published" # that are in RFC Editor or IANA queues @@ -455,7 +455,7 @@ class DiscrepanciesTests(TestCase): doc.set_state(State.objects.get(used=True, type="draft-rfceditor", slug="auth")) r = self.client.get(urlreverse("ietf.sync.views.discrepancies")) - self.assertTrue(doc.name in r.content) + self.assertTrue(doc.name in unicontent(r)) class RFCEditorUndoTests(TestCase): def test_rfceditor_undo(self): @@ -477,7 +477,7 @@ class RFCEditorUndoTests(TestCase): # get r = self.client.get(url) self.assertEqual(r.status_code, 200) - self.assertTrue(e2.doc_id in r.content) + self.assertTrue(e2.doc_id in unicontent(r)) # delete e2 deleted_before = DeletedEvent.objects.count() diff --git a/ietf/utils/test_data.py b/ietf/utils/test_data.py index 9422704aa..9073709a6 100644 --- a/ietf/utils/test_data.py +++ b/ietf/utils/test_data.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- import datetime from django.conf import settings @@ -75,7 +76,7 @@ def make_immutable_base_data(): create_person(iepg, "chair") iana = create_group(name="IANA", acronym="iana", type_id="ietf") - create_person(iana, "auth", name="Ina Iana", username="iana", email_address="iana@ia.na") + create_person(iana, "auth", name="Iña Iana", username="iana", email_address="iana@ia.na") rfc_editor = create_group(name="RFC Editor", acronym="rfceditor", type_id="rfcedtyp") create_person(rfc_editor, "auth", name="Rfc Editor", username="rfc", email_address="rfc@edit.or") @@ -86,7 +87,7 @@ def make_immutable_base_data(): # one area area = create_group(name="Far Future", acronym="farfut", type_id="area", parent=ietf) - create_person(area, "ad", name="Aread Irector", username="ad", email_address="aread@ietf.org") + create_person(area, "ad", name="Areað Irector", username="ad", email_address="aread@ietf.org") # create a bunch of ads for swarm tests for i in range(1, 10): @@ -173,13 +174,13 @@ def make_test_data(): email = Email.objects.create(address="plain@example.com", person=plainman) # group personnel - create_person(mars_wg, "chair", name="WG Chair Man", username="marschairman") - create_person(mars_wg, "delegate", name="WG Delegate", username="marsdelegate") + create_person(mars_wg, "chair", name="WG Cháir Man", username="marschairman") + create_person(mars_wg, "delegate", name="WG Dèlegate", username="marsdelegate") mars_wg.role_set.get_or_create(name_id='ad',person=ad,email=ad.role_email('ad')) mars_wg.save() - create_person(ames_wg, "chair", name="WG Chair Man", username="ameschairman") - create_person(ames_wg, "delegate", name="WG Delegate", username="amesdelegate") + create_person(ames_wg, "chair", name="WG Cháir Man", username="ameschairman") + create_person(ames_wg, "delegate", name="WG Dèlegate", username="amesdelegate") ames_wg.role_set.get_or_create(name_id='ad',person=ad,email=ad.role_email('ad')) ames_wg.save() diff --git a/ietf/utils/test_utils.py b/ietf/utils/test_utils.py index fc671bc97..0645a7cf9 100644 --- a/ietf/utils/test_utils.py +++ b/ietf/utils/test_utils.py @@ -262,6 +262,16 @@ def login_testing_unauthorized(test_case, username, url, password=None): password = username + "+password" return test_case.client.login(username=username, password=password) +def unicontent(r): + "Return a HttpResponse object's content as unicode" + content_type = r._headers.get("content-type", "text/html; charset=utf-8") + if 'charset=' in content_type: + mediatype, charset = content_type.split(';') + encoding = charset.split('=')[1].strip() + else: + encoding = 'utf-8' + return r.content.decode(encoding) + class ReverseLazyTest(django.test.TestCase): def test_redirect_with_lazy_reverse(self): response = self.client.get('/ipr/update/')