|
26 | 26 | WriteupDocEvent, DocRelationshipName, IanaExpertDocEvent ) |
27 | 27 | from ietf.doc.utils import get_tags_for_stream_id, create_ballot_if_not_open |
28 | 28 | from ietf.doc.views_draft import AdoptDraftForm |
29 | | -from ietf.name.models import StreamName, DocTagName, RoleName |
| 29 | +from ietf.name.models import DocTagName, RoleName |
30 | 30 | from ietf.group.factories import GroupFactory, RoleFactory |
31 | 31 | from ietf.group.models import Group, Role |
32 | 32 | from ietf.person.factories import PersonFactory, EmailFactory |
@@ -471,69 +471,61 @@ def test_edit_telechat_date(self): |
471 | 471 | self.assertIn("may not leave enough time", get_payload_text(outbox[-1])) |
472 | 472 |
|
473 | 473 | def test_start_iesg_process_on_draft(self): |
474 | | - |
475 | 474 | draft = WgDraftFactory( |
476 | 475 | name="draft-ietf-mars-test2", |
477 | | - group__acronym='mars', |
| 476 | + group__acronym="mars", |
478 | 477 | intended_std_level_id="ps", |
479 | | - authors=[Person.objects.get(user__username='ad')], |
480 | | - ) |
481 | | - |
482 | | - url = urlreverse('ietf.doc.views_draft.edit_info', kwargs=dict(name=draft.name)) |
| 478 | + authors=[Person.objects.get(user__username="ad")], |
| 479 | + ) |
| 480 | + |
| 481 | + url = urlreverse("ietf.doc.views_draft.edit_info", kwargs=dict(name=draft.name)) |
483 | 482 | login_testing_unauthorized(self, "secretary", url) |
484 | 483 |
|
485 | 484 | # normal get |
486 | 485 | r = self.client.get(url) |
487 | 486 | self.assertEqual(r.status_code, 200) |
488 | 487 | q = PyQuery(r.content) |
489 | | - self.assertEqual(len(q('form select[name=intended_std_level]')), 1) |
490 | | - self.assertEqual("", q('form textarea[name=notify]')[0].value.strip()) |
| 488 | + self.assertEqual(len(q("form select[name=intended_std_level]")), 1) |
| 489 | + self.assertEqual("", q("form textarea[name=notify]")[0].value.strip()) |
491 | 490 |
|
492 | | - # add |
493 | | - events_before = draft.docevent_set.count() |
| 491 | + events_before = list(draft.docevent_set.values_list("id", flat=True)) |
494 | 492 | mailbox_before = len(outbox) |
495 | 493 |
|
496 | 494 | ad = Person.objects.get(name="Areað Irector") |
497 | 495 |
|
498 | | - r = self.client.post(url, |
499 | | - dict(intended_std_level=str(draft.intended_std_level_id), |
500 | | - ad=ad.pk, |
501 | | - create_in_state=State.objects.get(used=True, type="draft-iesg", slug="watching").pk, |
502 | | - notify="test@example.com", |
503 | | - telechat_date="", |
504 | | - )) |
| 496 | + r = self.client.post( |
| 497 | + url, |
| 498 | + dict( |
| 499 | + intended_std_level=str(draft.intended_std_level_id), |
| 500 | + ad=ad.pk, |
| 501 | + notify="test@example.com", |
| 502 | + telechat_date="", |
| 503 | + ), |
| 504 | + ) |
505 | 505 | self.assertEqual(r.status_code, 302) |
506 | 506 |
|
507 | 507 | draft = Document.objects.get(name=draft.name) |
508 | | - self.assertEqual(draft.get_state_slug("draft-iesg"), "watching") |
| 508 | + self.assertEqual(draft.get_state_slug("draft-iesg"), "pub-req") |
| 509 | + self.assertEqual(draft.get_state_slug("draft-stream-ietf"), "sub-pub") |
509 | 510 | self.assertEqual(draft.ad, ad) |
510 | | - self.assertTrue(not draft.latest_event(TelechatDocEvent, type="scheduled_for_telechat")) |
511 | | - self.assertEqual(draft.docevent_set.count(), events_before + 4) |
512 | | - self.assertCountEqual(draft.action_holders.all(), [draft.ad]) |
513 | | - events = list(draft.docevent_set.order_by('time', 'id')) |
514 | | - self.assertEqual(events[-4].type, "started_iesg_process") |
515 | | - self.assertEqual(len(outbox), mailbox_before+1) |
516 | | - self.assertTrue('IESG processing' in outbox[-1]['Subject']) |
517 | | - self.assertTrue('draft-ietf-mars-test2@' in outbox[-1]['To']) |
518 | | - |
519 | | - # Redo, starting in publication requested to make sure WG state is also set |
520 | | - draft.set_state(State.objects.get(type_id='draft-iesg', slug='idexists')) |
521 | | - draft.set_state(State.objects.get(type='draft-stream-ietf',slug='writeupw')) |
522 | | - draft.stream = StreamName.objects.get(slug='ietf') |
523 | | - draft.action_holders.clear() |
524 | | - draft.save_with_history([DocEvent.objects.create(doc=draft, rev=draft.rev, type="changed_stream", by=Person.objects.get(user__username="secretary"), desc="Test")]) |
525 | | - r = self.client.post(url, |
526 | | - dict(intended_std_level=str(draft.intended_std_level_id), |
527 | | - ad=ad.pk, |
528 | | - create_in_state=State.objects.get(used=True, type="draft-iesg", slug="pub-req").pk, |
529 | | - notify="test@example.com", |
530 | | - telechat_date="", |
531 | | - )) |
532 | | - self.assertEqual(r.status_code, 302) |
533 | | - draft = Document.objects.get(name=draft.name) |
534 | | - self.assertEqual(draft.get_state_slug('draft-iesg'),'pub-req') |
535 | | - self.assertEqual(draft.get_state_slug('draft-stream-ietf'),'sub-pub') |
| 511 | + self.assertTrue( |
| 512 | + not draft.latest_event(TelechatDocEvent, type="scheduled_for_telechat") |
| 513 | + ) |
| 514 | + # check that the expected events were created (don't insist on ordering) |
| 515 | + self.assertCountEqual( |
| 516 | + draft.docevent_set.exclude(id__in=events_before).values_list("type", flat=True), |
| 517 | + [ |
| 518 | + "changed_action_holders", # action holders set to AD |
| 519 | + "changed_document", # WG state set to sub-pub |
| 520 | + "changed_document", # AD set |
| 521 | + "changed_document", # state change notice email set |
| 522 | + "started_iesg_process", # IESG state is now pub-req |
| 523 | + ], |
| 524 | + ) |
536 | 525 | self.assertCountEqual(draft.action_holders.all(), [draft.ad]) |
| 526 | + self.assertEqual(len(outbox), mailbox_before + 1) |
| 527 | + self.assertTrue("IESG processing" in outbox[-1]["Subject"]) |
| 528 | + self.assertTrue("draft-ietf-mars-test2@" in outbox[-1]["To"]) |
537 | 529 |
|
538 | 530 | def test_edit_consensus(self): |
539 | 531 | draft = WgDraftFactory() |
@@ -750,10 +742,6 @@ def test_expire_drafts(self): |
750 | 742 |
|
751 | 743 | self.assertEqual(len(list(get_expired_drafts())), 1) |
752 | 744 |
|
753 | | - draft.set_state(State.objects.get(used=True, type="draft-iesg", slug="watching")) |
754 | | - |
755 | | - self.assertEqual(len(list(get_expired_drafts())), 1) |
756 | | - |
757 | 745 | draft.set_state(State.objects.get(used=True, type="draft-iesg", slug="iesg-eva")) |
758 | 746 |
|
759 | 747 | self.assertEqual(len(list(get_expired_drafts())), 0) |
|
0 commit comments