diff --git a/ietf/doc/tests_charter.py b/ietf/doc/tests_charter.py index d4c1c02cc..90529330e 100644 --- a/ietf/doc/tests_charter.py +++ b/ietf/doc/tests_charter.py @@ -13,6 +13,7 @@ import debug # pyflakes:ignore from ietf.doc.models import ( Document, State, BallotDocEvent, BallotType, NewRevisionDocEvent, TelechatDocEvent, WriteupDocEvent ) from ietf.doc.utils_charter import next_revision, default_review_text, default_action_text +from ietf.doc.utils import close_open_ballots from ietf.group.models import Group, GroupMilestone from ietf.iesg.models import TelechatDate from ietf.person.models import Person @@ -97,7 +98,7 @@ class EditCharterTests(TestCase): self.assertTrue("state changed" in find_event("changed_state")[0].desc.lower()) - if slug in ("intrev", "iesgrev"): + if slug in ("intrev", "extrev"): self.assertTrue(find_event("created_ballot")) self.assertEqual(len(outbox), 3 if slug=="intrev" else 2 ) @@ -127,6 +128,14 @@ class EditCharterTests(TestCase): for word in ["State changed", "ID Tracker URL", ]: self.assertIn(word, body) + by = Person.objects.get(user__username="secretary") + for slug in ('extrev','iesgrev'): + close_open_ballots(charter,by) + r = self.client.post(url, dict(charter_state=str(State.objects.get(used=True,type='charter',slug=slug).pk) )) + self.assertTrue(r.status_code,302) + charter = Document.objects.get(name="charter-ietf-%s" % group.acronym) + self.assertTrue(charter.ballot_open('approve')) + # Exercise internal review of a recharter group = Group.objects.get(acronym="mars") diff --git a/ietf/doc/views_charter.py b/ietf/doc/views_charter.py index d41462adc..39b091cff 100644 --- a/ietf/doc/views_charter.py +++ b/ietf/doc/views_charter.py @@ -157,7 +157,7 @@ def change_state(request, name, option=None): create_ballot_if_not_open(charter, login, "r-extrev") default_review_text(group, charter, login) default_action_text(group, charter, login) - elif charter_state.slug == "iesgrev": + elif charter_state.slug in ["extrev","iesgrev"]: create_ballot_if_not_open(charter, login, "approve") elif charter_state.slug == "approved": change_group_state_after_charter_approval(group, login)