diff --git a/ietf/group/tests_info.py b/ietf/group/tests_info.py index 8e1313e33..98d4100a0 100644 --- a/ietf/group/tests_info.py +++ b/ietf/group/tests_info.py @@ -19,7 +19,7 @@ from django.utils.html import escape from django.template.defaultfilters import urlize from ietf.doc.models import Document, DocAlias, DocEvent, State -from ietf.group.models import Group, GroupEvent, GroupMilestone, GroupStateTransitions +from ietf.group.models import Group, GroupEvent, GroupMilestone, GroupStateTransitions, Role from ietf.group.utils import save_group_in_history, setup_default_community_list_for_group from ietf.name.models import DocTagName, GroupStateName, GroupTypeName from ietf.person.models import Person, Email @@ -350,6 +350,24 @@ class GroupPagesTests(TestCase): self.assertTrue(de.desc in unicontent(r)) + def test_chair_photos(self): + make_test_data() + url = urlreverse("ietf.group.views.chair_photos", kwargs={'group_type':'wg'}) + r = self.client.get(url) + self.assertEqual(r.status_code, 200) + q = PyQuery(r.content) + chairs = Role.objects.filter(group__type='wg', group__state='active', name_id='chair') + self.assertEqual(len(q('div.photo-thumbnail img')), chairs.count()) + + def test_group_photos(self): + make_test_data() + url = urlreverse("ietf.group.views.group_photos", kwargs={'group_type':'wg', 'acronym':'mars'}) + r = self.client.get(url) + self.assertEqual(r.status_code, 200) + q = PyQuery(r.content) + roles = Role.objects.filter(group__acronym='mars') + self.assertEqual(len(q('div.photo-thumbnail img')), roles.count()) + class GroupEditTests(TestCase): def setUp(self): self.charter_dir = os.path.abspath("tmp-charter-dir") diff --git a/ietf/iesg/tests.py b/ietf/iesg/tests.py index 1aa0d8f1e..ad52e70f9 100644 --- a/ietf/iesg/tests.py +++ b/ietf/iesg/tests.py @@ -11,7 +11,7 @@ from pyquery import PyQuery from ietf.doc.models import DocEvent, BallotDocEvent, BallotPositionDocEvent, TelechatDocEvent from ietf.doc.models import Document, DocAlias, State, RelatedDocument -from ietf.group.models import Group, GroupMilestone +from ietf.group.models import Group, GroupMilestone, Role from ietf.iesg.agenda import get_agenda_date, agenda_data from ietf.iesg.models import TelechatDate from ietf.name.models import StreamName @@ -66,6 +66,14 @@ class IESGTests(TestCase): self.assertEqual(r.status_code, 200) self.assertTrue(draft.name in unicontent(r)) + def test_photos(self): + url = urlreverse("ietf.iesg.views.photos") + r = self.client.get(url) + self.assertEqual(r.status_code, 200) + q = PyQuery(r.content) + ads = Role.objects.filter(group__type='area', group__state='active', name_id='ad') + self.assertEqual(len(q('div.photo-thumbnail img')), ads.count()) + class IESGAgendaTests(TestCase): def setUp(self): make_test_data() diff --git a/ietf/person/tests.py b/ietf/person/tests.py index a94bff135..0f0cbfeb6 100644 --- a/ietf/person/tests.py +++ b/ietf/person/tests.py @@ -1,14 +1,17 @@ import json +from pyquery import PyQuery from django.core.urlresolvers import reverse as urlreverse +import debug # pyflakes:ignore +from ietf.person.factories import EmailFactory,PersonFactory from ietf.utils.test_utils import TestCase from ietf.utils.test_data import make_test_data -from ietf.person.factories import EmailFactory,PersonFactory class PersonTests(TestCase): + def test_ajax_search_emails(self): draft = make_test_data() person = draft.ad @@ -24,3 +27,24 @@ class PersonTests(TestCase): EmailFactory(person=person,primary=False,active=True) EmailFactory(person=person,primary=False,active=False) self.assertTrue(primary.address in person.formatted_email()) + + def test_profile(self): + person = PersonFactory(with_bio=True) + + self.assertTrue(person.photo is not None) + self.assertTrue(person.photo.name is not None) + + url = urlreverse("ietf.person.views.profile", kwargs={ "email_or_name": person.plain_name()}) + r = self.client.get(url) + self.assertEqual(r.status_code, 200) + self.assertIn(person.photo_name(), r.content) + q = PyQuery(r.content) + self.assertIn("Photo of %s"%person, q("div.bio-text img.bio-photo").attr("alt")) + + bio_text = q("div.bio-text").text() + self.assertIsNotNone(bio_text) + + photo_url = q("div.bio-text img.bio-photo").attr("src") + r = self.client.get(photo_url) + self.assertEqual(r.status_code, 200) +