|
8 | 8 |
|
9 | 9 | from ietf.doc.models import ( Document, State, DocEvent, BallotDocEvent, |
10 | 10 | BallotPositionDocEvent, LastCallDocEvent, WriteupDocEvent, TelechatDocEvent ) |
| 11 | +from ietf.doc.factories import DocumentFactory |
| 12 | +from ietf.group.factories import GroupFactory |
11 | 13 | from ietf.group.models import Group, Role |
12 | 14 | from ietf.name.models import BallotPositionName |
13 | 15 | from ietf.iesg.models import TelechatDate |
@@ -713,3 +715,44 @@ def test_undefer_status_change(self): |
713 | 715 |
|
714 | 716 | def setUp(self): |
715 | 717 | make_test_data() |
| 718 | + |
| 719 | +class RegenerateLastCallTestCase(TestCase): |
| 720 | + |
| 721 | + def test_regenerate_last_call(self): |
| 722 | + group = GroupFactory(type_id='individ') |
| 723 | + draft = DocumentFactory.create(stream_id='ietf',group=group) |
| 724 | + draft.docalias_set.create(name=draft.name) # factory should do this |
| 725 | + draft.set_state(State.objects.get(type='draft',slug='active')) |
| 726 | + draft.set_state(State.objects.get(type='draft-iesg',slug='pub-req')) |
| 727 | + draft.intended_std_level_id='ps' |
| 728 | + draft.save() |
| 729 | + |
| 730 | + url = urlreverse('doc_ballot_lastcall', kwargs=dict(name=draft.name)) |
| 731 | + login_testing_unauthorized(self, "secretary", url) |
| 732 | + r = self.client.get(url) |
| 733 | + self.assertEqual(r.status_code, 200) |
| 734 | + |
| 735 | + r = self.client.post(url, dict(regenerate_last_call_text="1")) |
| 736 | + self.assertEqual(r.status_code, 200) |
| 737 | + draft = Document.objects.get(name=draft.name) |
| 738 | + lc_text = draft.latest_event(WriteupDocEvent, type="changed_last_call_text").text |
| 739 | + self.assertTrue("Subject: Last Call" in lc_text) |
| 740 | + self.assertFalse("contains normative down" in lc_text) |
| 741 | + |
| 742 | + rfc = DocumentFactory.create(stream_id='ise') |
| 743 | + rfc.docalias_set.create(name=rfc.name) |
| 744 | + rfc_alias = rfc.docalias_set.create(name='rfc6666') |
| 745 | + rfc.set_state(State.objects.get(type='draft',slug='rfc')) |
| 746 | + rfc.set_state(State.objects.get(type='draft-iesg',slug='pub')) |
| 747 | + rfc.std_level_id='inf' |
| 748 | + rfc.save() |
| 749 | + |
| 750 | + draft.relateddocument_set.create(target=rfc_alias,relationship_id='refnorm') |
| 751 | + |
| 752 | + r = self.client.post(url, dict(regenerate_last_call_text="1")) |
| 753 | + self.assertEqual(r.status_code, 200) |
| 754 | + draft = Document.objects.get(name=draft.name) |
| 755 | + lc_text = draft.latest_event(WriteupDocEvent, type="changed_last_call_text").text |
| 756 | + self.assertTrue('contains these normative down' in lc_text) |
| 757 | + self.assertTrue('rfc6666' in lc_text) |
| 758 | + self.assertTrue('Independent Submission Editor stream' in lc_text) |
0 commit comments