Skip to content

Commit 2b226ae

Browse files
committed
Improved test coverage somewhat by making more of the group tests apply to both the /group/acronym and /wg/acronym (or equivalent) url forms.
- Legacy-Id: 11857
1 parent cf5ac68 commit 2b226ae

1 file changed

Lines changed: 92 additions & 88 deletions

File tree

ietf/group/tests_info.py

Lines changed: 92 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,13 @@
3232
from ietf.utils.test_data import make_test_data, create_person
3333
from ietf.utils.test_utils import login_testing_unauthorized, TestCase, unicontent
3434

35+
def group_urlreverse_list(group, viewname):
36+
return [
37+
urlreverse(viewname, kwargs=dict(acronym=group.acronym)),
38+
urlreverse(viewname, kwargs=dict(acronym=group.acronym, group_type=group.type_id)),
39+
]
40+
41+
3542
class GroupPagesTests(TestCase):
3643
def setUp(self):
3744
self.charter_dir = os.path.abspath("tmp-charter-dir")
@@ -94,17 +101,18 @@ def test_group_home(self):
94101
draft = make_test_data()
95102
group = draft.group
96103

97-
url = urlreverse('ietf.group.views.group_home', kwargs=dict(acronym=group.acronym))
98-
next = urlreverse('ietf.group.views.group_documents', kwargs=dict(acronym=group.acronym))
99-
r = self.client.get(url)
100-
self.assertRedirects(r, next)
101-
r = self.client.get(next)
102-
self.assertTrue(group.acronym in unicontent(r))
103-
self.assertTrue(group.name in unicontent(r))
104-
for word in ['Documents', 'Date', 'Status', 'IPR', 'AD', 'Shepherd']:
105-
self.assertTrue(word in unicontent(r))
106-
self.assertTrue(draft.name in unicontent(r))
107-
self.assertTrue(draft.title in unicontent(r))
104+
url_list = group_urlreverse_list(group, 'ietf.group.views.group_home')
105+
next_list = group_urlreverse_list(group, 'ietf.group.views.group_documents')
106+
for url, next in [ (url_list[i], next_list[i]) for i in range(len(url_list)) ]:
107+
r = self.client.get(url)
108+
self.assertRedirects(r, next)
109+
r = self.client.get(next)
110+
self.assertTrue(group.acronym in unicontent(r))
111+
self.assertTrue(group.name in unicontent(r))
112+
for word in ['Documents', 'Date', 'Status', 'IPR', 'AD', 'Shepherd']:
113+
self.assertTrue(word in unicontent(r))
114+
self.assertTrue(draft.name in unicontent(r))
115+
self.assertTrue(draft.title in unicontent(r))
108116

109117
def test_wg_summaries(self):
110118
draft = make_test_data()
@@ -215,13 +223,13 @@ def test_group_documents(self):
215223
related_docs_rule = clist.searchrule_set.get(rule_type='name_contains')
216224
reset_name_contains_index_for_rule(related_docs_rule)
217225

218-
url = urlreverse('ietf.group.views.group_documents', kwargs=dict(group_type=group.type_id, acronym=group.acronym))
219-
r = self.client.get(url)
220-
self.assertEqual(r.status_code, 200)
221-
self.assertTrue(draft.name in unicontent(r))
222-
self.assertTrue(group.name in unicontent(r))
223-
self.assertTrue(group.acronym in unicontent(r))
224-
self.assertTrue(draft2.name in unicontent(r))
226+
for url in group_urlreverse_list(group, 'ietf.group.views.group_documents'):
227+
r = self.client.get(url)
228+
self.assertEqual(r.status_code, 200)
229+
self.assertTrue(draft.name in unicontent(r))
230+
self.assertTrue(group.name in unicontent(r))
231+
self.assertTrue(group.acronym in unicontent(r))
232+
self.assertTrue(draft2.name in unicontent(r))
225233

226234
# Make sure that a logged in user is presented with an opportunity to add results to their community list
227235
self.client.login(username="secretary", password="secretary+password")
@@ -230,11 +238,11 @@ def test_group_documents(self):
230238
self.assertTrue(any([draft2.name in x.attrib['href'] for x in q('table td a.track-untrack-doc')]))
231239

232240
# test the txt version too while we're at it
233-
url = urlreverse('ietf.group.views.group_documents_txt', kwargs=dict(group_type=group.type_id, acronym=group.acronym))
234-
r = self.client.get(url)
235-
self.assertEqual(r.status_code, 200)
236-
self.assertTrue(draft.name in unicontent(r))
237-
self.assertTrue(draft2.name in unicontent(r))
241+
for url in group_urlreverse_list(group, 'ietf.group.views.group_documents_txt'):
242+
r = self.client.get(url)
243+
self.assertEqual(r.status_code, 200)
244+
self.assertTrue(draft.name in unicontent(r))
245+
self.assertTrue(draft2.name in unicontent(r))
238246

239247
def test_group_charter(self):
240248
draft = make_test_data()
@@ -250,10 +258,7 @@ def test_group_charter(self):
250258
due=datetime.date.today() + datetime.timedelta(days=100))
251259
milestone.docs.add(draft)
252260

253-
for url in [group.about_url(),
254-
urlreverse('ietf.group.views.group_about',kwargs=dict(acronym=group.acronym)),
255-
urlreverse('ietf.group.views.group_about',kwargs=dict(acronym=group.acronym,group_type=group.type_id)),
256-
]:
261+
for url in [group.about_url(),] + group_urlreverse_list(group, 'ietf.group.views.group_about'):
257262
r = self.client.get(url)
258263
self.assertEqual(r.status_code, 200)
259264
self.assertTrue(group.name in unicontent(r))
@@ -264,12 +269,12 @@ def test_group_charter(self):
264269

265270
def test_group_about(self):
266271

267-
def verify_cannot_edit_group(username):
272+
def verify_cannot_edit_group(url, username):
268273
self.client.login(username=username, password=username+"+password")
269274
r = self.client.get(url)
270275
self.assertEqual(r.status_code, 403)
271276

272-
def verify_can_edit_group(username):
277+
def verify_can_edit_group(url, username):
273278
self.client.login(username=username, password=username+"+password")
274279
r = self.client.get(url)
275280
self.assertEqual(r.status_code, 200)
@@ -285,24 +290,21 @@ def verify_can_edit_group(username):
285290
)
286291
create_person(group, "chair", name="Testteam Chairman", username="teamchairman")
287292

288-
for url in [group.about_url(),
289-
urlreverse('ietf.group.views.group_about',kwargs=dict(acronym=group.acronym)),
290-
urlreverse('ietf.group.views.group_about',kwargs=dict(acronym=group.acronym,group_type=group.type_id)),
291-
]:
293+
for url in [group.about_url(),] + group_urlreverse_list(group, 'ietf.group.views.group_about'):
292294
url = group.about_url()
293295
r = self.client.get(url)
294296
self.assertEqual(r.status_code, 200)
295297
self.assertTrue(group.name in unicontent(r))
296298
self.assertTrue(group.acronym in unicontent(r))
297299
self.assertTrue(group.description in unicontent(r))
298300

299-
url = urlreverse('ietf.group.views_edit.edit', kwargs=dict(acronym=group.acronym))
301+
for url in group_urlreverse_list(group, 'ietf.group.views_edit.edit'):
300302

301-
for username in ['plain','iana','iab chair','irtf chair','marschairman']:
302-
verify_cannot_edit_group(username)
303+
for username in ['plain','iana','iab chair','irtf chair','marschairman']:
304+
verify_cannot_edit_group(url, username)
303305

304-
for username in ['secretary','teamchairman','ad']:
305-
verify_can_edit_group(username)
306+
for username in ['secretary','teamchairman','ad']:
307+
verify_can_edit_group(url, username)
306308

307309
def test_materials(self):
308310
make_test_data()
@@ -318,9 +320,7 @@ def test_materials(self):
318320
doc.set_state(State.objects.get(type="slides", slug="active"))
319321
DocAlias.objects.create(name=doc.name, document=doc)
320322

321-
for url in [ urlreverse("group_materials", kwargs={ 'acronym': group.acronym }),
322-
urlreverse("group_materials", kwargs={ 'acronym': group.acronym , 'group_type': group.type_id}),
323-
]:
323+
for url in group_urlreverse_list(group, 'ietf.group.views.materials'):
324324
r = self.client.get(url)
325325
self.assertEqual(r.status_code, 200)
326326
self.assertTrue(doc.title in unicontent(r))
@@ -345,10 +345,10 @@ def test_history(self):
345345
type="added_comment",
346346
by=Person.objects.get(name="(System)"))
347347

348-
url = urlreverse('ietf.group.views.history', kwargs=dict(group_type=group.type_id, acronym=group.acronym))
349-
r = self.client.get(url)
350-
self.assertEqual(r.status_code, 200)
351-
self.assertTrue(e.desc in unicontent(r))
348+
for url in group_urlreverse_list(group, 'ietf.group.views.history'):
349+
r = self.client.get(url)
350+
self.assertEqual(r.status_code, 200)
351+
self.assertTrue(e.desc in unicontent(r))
352352

353353
def test_feed(self):
354354
draft = make_test_data()
@@ -665,20 +665,22 @@ def last_day_of_month(self, d):
665665
def test_milestone_sets(self):
666666
m1, m2, group = self.create_test_milestones()
667667

668-
url = urlreverse('group_edit_milestones', kwargs=dict(group_type=group.type_id, acronym=group.acronym))
669-
login_testing_unauthorized(self, "secretary", url)
668+
for url in group_urlreverse_list(group, 'group_edit_milestones'):
669+
login_testing_unauthorized(self, "secretary", url)
670670

671-
r = self.client.get(url)
672-
self.assertEqual(r.status_code, 200)
673-
self.assertTrue(m1.desc in unicontent(r))
674-
self.assertTrue(m2.desc not in unicontent(r))
671+
r = self.client.get(url)
672+
self.assertEqual(r.status_code, 200)
673+
self.assertTrue(m1.desc in unicontent(r))
674+
self.assertTrue(m2.desc not in unicontent(r))
675+
self.client.logout()
675676

676-
url = urlreverse('group_edit_charter_milestones', kwargs=dict(group_type=group.type_id, acronym=group.acronym))
677+
login_testing_unauthorized(self, "secretary", url)
677678

678-
r = self.client.get(url)
679-
self.assertEqual(r.status_code, 200)
680-
self.assertTrue(m1.desc not in unicontent(r))
681-
self.assertTrue(m2.desc in unicontent(r))
679+
for url in group_urlreverse_list(group, 'group_edit_charter_milestones'):
680+
r = self.client.get(url)
681+
self.assertEqual(r.status_code, 200)
682+
self.assertTrue(m1.desc not in unicontent(r))
683+
self.assertTrue(m2.desc in unicontent(r))
682684

683685
def test_add_milestone(self):
684686
m1, m2, group = self.create_test_milestones()
@@ -1075,13 +1077,13 @@ def setUp(self):
10751077

10761078

10771079
def test_meeting_info(self):
1078-
url = urlreverse('ietf.group.views.meetings',kwargs={'acronym':self.group.acronym})
1079-
response = self.client.get(url)
1080-
self.assertEqual(response.status_code, 200)
1081-
q = PyQuery(response.content)
1082-
self.assertTrue(q('#inprogressmeets'))
1083-
self.assertTrue(q('#futuremeets'))
1084-
self.assertTrue(q('#pastmeets'))
1080+
for url in group_urlreverse_list(self.group, 'ietf.group.views.meetings'):
1081+
response = self.client.get(url)
1082+
self.assertEqual(response.status_code, 200)
1083+
q = PyQuery(response.content)
1084+
self.assertTrue(q('#inprogressmeets'))
1085+
self.assertTrue(q('#futuremeets'))
1086+
self.assertTrue(q('#pastmeets'))
10851087

10861088
self.group.session_set.filter(id=self.inprog.id).delete()
10871089
response = self.client.get(url)
@@ -1094,7 +1096,7 @@ class StatusUpdateTests(TestCase):
10941096

10951097
def test_unsupported_group_types(self):
10961098

1097-
def ensure_updates_dont_show(group,user):
1099+
def ensure_updates_dont_show(group, user):
10981100
url = urlreverse('ietf.group.views.group_about',kwargs={'acronym':group.acronym})
10991101
if user:
11001102
self.client.login(username=user.username,password='%s+password'%user.username)
@@ -1121,34 +1123,36 @@ def ensure_cant_edit(group,user):
11211123
def test_see_status_update(self):
11221124
chair = RoleFactory(name_id='chair',group__type_id='wg')
11231125
GroupEventFactory(type='status_update',group=chair.group)
1124-
url = urlreverse('ietf.group.views.group_about',kwargs={'acronym':chair.group.acronym})
1125-
response = self.client.get(url)
1126-
self.assertEqual(response.status_code,200)
1127-
q=PyQuery(response.content)
1128-
self.assertTrue(q('tr#status_update'))
1129-
self.assertTrue(q('tr#status_update td a:contains("Show")'))
1130-
self.assertFalse(q('tr#status_update td a:contains("Edit")'))
1131-
self.client.login(username=chair.person.user.username,password='%s+password'%chair.person.user.username)
1132-
response = self.client.get(url)
1133-
self.assertEqual(response.status_code,200)
1134-
q=PyQuery(response.content)
1135-
self.assertTrue(q('tr#status_update td a:contains("Show")'))
1136-
self.assertTrue(q('tr#status_update td a:contains("Edit")'))
1126+
for url in group_urlreverse_list(chair.group, 'ietf.group.views.group_about'):
1127+
response = self.client.get(url)
1128+
self.assertEqual(response.status_code,200)
1129+
q=PyQuery(response.content)
1130+
self.assertTrue(q('tr#status_update'))
1131+
self.assertTrue(q('tr#status_update td a:contains("Show")'))
1132+
self.assertFalse(q('tr#status_update td a:contains("Edit")'))
1133+
self.client.login(username=chair.person.user.username,password='%s+password'%chair.person.user.username)
1134+
response = self.client.get(url)
1135+
self.assertEqual(response.status_code,200)
1136+
q=PyQuery(response.content)
1137+
self.assertTrue(q('tr#status_update td a:contains("Show")'))
1138+
self.assertTrue(q('tr#status_update td a:contains("Edit")'))
1139+
self.client.logout()
11371140

11381141
def test_view_status_update(self):
11391142
chair = RoleFactory(name_id='chair',group__type_id='wg')
11401143
event = GroupEventFactory(type='status_update',group=chair.group)
1141-
url = urlreverse('ietf.group.views.group_about_status',kwargs={'acronym':chair.group.acronym})
1142-
response = self.client.get(url)
1143-
self.assertEqual(response.status_code,200)
1144-
q=PyQuery(response.content)
1145-
self.assertTrue(urlize(escape(event.desc) in q('pre')))
1146-
self.assertFalse(q('a#edit_button'))
1147-
self.client.login(username=chair.person.user.username,password='%s+password'%chair.person.user.username)
1148-
response = self.client.get(url)
1149-
self.assertEqual(response.status_code,200)
1150-
q=PyQuery(response.content)
1151-
self.assertTrue(q('a#edit_button'))
1144+
for url in group_urlreverse_list(chair.group, 'ietf.group.views.group_about_status'):
1145+
response = self.client.get(url)
1146+
self.assertEqual(response.status_code,200)
1147+
q=PyQuery(response.content)
1148+
self.assertTrue(urlize(escape(event.desc) in q('pre')))
1149+
self.assertFalse(q('a#edit_button'))
1150+
self.client.login(username=chair.person.user.username,password='%s+password'%chair.person.user.username)
1151+
response = self.client.get(url)
1152+
self.assertEqual(response.status_code,200)
1153+
q=PyQuery(response.content)
1154+
self.assertTrue(q('a#edit_button'))
1155+
self.client.logout()
11521156

11531157
def test_edit_status_update(self):
11541158
chair = RoleFactory(name_id='chair',group__type_id='wg')

0 commit comments

Comments
 (0)