|
9 | 9 |
|
10 | 10 | from ietf.doc.models import ( Document, State, BallotDocEvent, BallotType, NewRevisionDocEvent, |
11 | 11 | TelechatDocEvent, WriteupDocEvent ) |
12 | | -from ietf.doc.utils_charter import next_revision, default_review_text, default_action_text |
| 12 | +from ietf.doc.utils_charter import next_revision, default_review_text, default_action_text |
13 | 13 | from ietf.group.models import Group, GroupMilestone |
14 | 14 | from ietf.iesg.models import TelechatDate |
15 | 15 | from ietf.person.models import Person |
@@ -273,46 +273,101 @@ def test_submit_charter(self): |
273 | 273 | self.assertEqual(f.read(), |
274 | 274 | "Windows line\nMac line\nUnix line\n" + utf_8_snippet) |
275 | 275 |
|
276 | | - def test_edit_announcement_text(self): |
| 276 | + def test_edit_review_announcement_text(self): |
277 | 277 | draft = make_test_data() |
278 | 278 | charter = draft.group.charter |
279 | 279 |
|
280 | | - for ann in ("action", "review"): |
281 | | - url = urlreverse('ietf.doc.views_charter.announcement_text', kwargs=dict(name=charter.name, ann=ann)) |
282 | | - self.client.logout() |
283 | | - login_testing_unauthorized(self, "secretary", url) |
| 280 | + url = urlreverse('ietf.doc.views_charter.review_announcement_text', kwargs=dict(name=charter.name)) |
| 281 | + self.client.logout() |
| 282 | + login_testing_unauthorized(self, "secretary", url) |
284 | 283 |
|
285 | | - # normal get |
286 | | - r = self.client.get(url) |
287 | | - self.assertEqual(r.status_code, 200) |
288 | | - q = PyQuery(r.content) |
289 | | - self.assertEqual(len(q('textarea[name=announcement_text]')), 1) |
290 | | - # as Secretariat, we can send |
291 | | - if ann == "review": |
292 | | - mailbox_before = len(outbox) |
293 | | - by = Person.objects.get(user__username="secretary") |
294 | | - r = self.client.post(url, dict( |
295 | | - announcement_text=default_review_text(draft.group, charter, by).text, |
296 | | - send_text="1")) |
297 | | - self.assertEqual(len(outbox), mailbox_before + 1) |
298 | | - self.assertTrue('WG Review' in outbox[-1]['Subject']) |
299 | | - self.assertTrue('ietf-announce@' in outbox[-1]['To']) |
300 | | - self.assertTrue('mars-wg@' in outbox[-1]['Cc']) |
301 | | - |
302 | | - # save |
303 | | - r = self.client.post(url, dict( |
304 | | - announcement_text="This is a simple test.", |
305 | | - save_text="1")) |
306 | | - self.assertEqual(r.status_code, 302) |
307 | | - self.assertTrue("This is a simple test" in charter.latest_event(WriteupDocEvent, type="changed_%s_announcement" % ann).text) |
| 284 | + # normal get |
| 285 | + r = self.client.get(url) |
| 286 | + self.assertEqual(r.status_code, 200) |
| 287 | + q = PyQuery(r.content) |
| 288 | + self.assertEqual(len(q('textarea[name=announcement_text]')), 1) |
| 289 | + self.assertEqual(len(q('textarea[name=new_work_text]')), 1) |
308 | 290 |
|
309 | | - # test regenerate |
310 | | - r = self.client.post(url, dict( |
311 | | - announcement_text="This is a simple test.", |
312 | | - regenerate_text="1")) |
313 | | - self.assertEqual(r.status_code, 200) |
314 | | - q = PyQuery(r.content) |
315 | | - self.assertTrue(draft.group.name in charter.latest_event(WriteupDocEvent, type="changed_%s_announcement" % ann).text) |
| 291 | + by = Person.objects.get(user__username="secretary") |
| 292 | + |
| 293 | + (e1, e2) = default_review_text(draft.group, charter, by) |
| 294 | + announcement_text = e1.text |
| 295 | + new_work_text = e2.text |
| 296 | + |
| 297 | + empty_outbox() |
| 298 | + r = self.client.post(url, dict( |
| 299 | + announcement_text=announcement_text, |
| 300 | + new_work_text=new_work_text, |
| 301 | + send_both="1")) |
| 302 | + self.assertEqual(len(outbox), 2) |
| 303 | + self.assertTrue(all(['WG Review' in m['Subject'] for m in outbox])) |
| 304 | + self.assertTrue('ietf-announce@' in outbox[0]['To']) |
| 305 | + self.assertTrue('mars-wg@' in outbox[0]['Cc']) |
| 306 | + self.assertTrue('new-work@' in outbox[1]['To']) |
| 307 | + |
| 308 | + empty_outbox() |
| 309 | + r = self.client.post(url, dict( |
| 310 | + announcement_text=announcement_text, |
| 311 | + new_work_text=new_work_text, |
| 312 | + send_annc_only="1")) |
| 313 | + self.assertEqual(len(outbox), 1) |
| 314 | + self.assertTrue('ietf-announce@' in outbox[0]['To']) |
| 315 | + |
| 316 | + empty_outbox() |
| 317 | + r = self.client.post(url, dict( |
| 318 | + announcement_text=announcement_text, |
| 319 | + new_work_text=new_work_text, |
| 320 | + send_nw_only="1")) |
| 321 | + self.assertEqual(len(outbox), 1) |
| 322 | + self.assertTrue('new-work@' in outbox[0]['To']) |
| 323 | + |
| 324 | + # save |
| 325 | + r = self.client.post(url, dict( |
| 326 | + announcement_text="This is a simple test.", |
| 327 | + new_work_text="New work gets something different.", |
| 328 | + save_text="1")) |
| 329 | + self.assertEqual(r.status_code, 302) |
| 330 | + self.assertTrue("This is a simple test" in charter.latest_event(WriteupDocEvent, type="changed_review_announcement").text) |
| 331 | + self.assertTrue("New work gets something different." in charter.latest_event(WriteupDocEvent, type="changed_new_work_text").text) |
| 332 | + |
| 333 | + # test regenerate |
| 334 | + r = self.client.post(url, dict( |
| 335 | + announcement_text="This is a simple test.", |
| 336 | + new_work_text="Too simple perhaps?", |
| 337 | + regenerate_text="1")) |
| 338 | + self.assertEqual(r.status_code, 200) |
| 339 | + q = PyQuery(r.content) |
| 340 | + self.assertTrue(draft.group.name in charter.latest_event(WriteupDocEvent, type="changed_review_announcement").text) |
| 341 | + self.assertTrue(draft.group.name in charter.latest_event(WriteupDocEvent, type="changed_new_work_text").text) |
| 342 | + |
| 343 | + def test_edit_action_announcement_text(self): |
| 344 | + draft = make_test_data() |
| 345 | + charter = draft.group.charter |
| 346 | + |
| 347 | + url = urlreverse('ietf.doc.views_charter.action_announcement_text', kwargs=dict(name=charter.name)) |
| 348 | + self.client.logout() |
| 349 | + login_testing_unauthorized(self, "secretary", url) |
| 350 | + |
| 351 | + # normal get |
| 352 | + r = self.client.get(url) |
| 353 | + self.assertEqual(r.status_code, 200) |
| 354 | + q = PyQuery(r.content) |
| 355 | + self.assertEqual(len(q('textarea[name=announcement_text]')), 1) |
| 356 | + |
| 357 | + # save |
| 358 | + r = self.client.post(url, dict( |
| 359 | + announcement_text="This is a simple test.", |
| 360 | + save_text="1")) |
| 361 | + self.assertEqual(r.status_code, 302) |
| 362 | + self.assertTrue("This is a simple test" in charter.latest_event(WriteupDocEvent, type="changed_action_announcement").text) |
| 363 | + |
| 364 | + # test regenerate |
| 365 | + r = self.client.post(url, dict( |
| 366 | + announcement_text="This is a simple test.", |
| 367 | + regenerate_text="1")) |
| 368 | + self.assertEqual(r.status_code, 200) |
| 369 | + q = PyQuery(r.content) |
| 370 | + self.assertTrue(draft.group.name in charter.latest_event(WriteupDocEvent, type="changed_action_announcement").text) |
316 | 371 |
|
317 | 372 | def test_edit_ballot_writeupnotes(self): |
318 | 373 | draft = make_test_data() |
|
0 commit comments