From 65bb1f27388f8d085bfac26f82f42ab8ab04bff8 Mon Sep 17 00:00:00 2001 From: Pete Resnick Date: Mon, 18 Jul 2016 20:12:12 +0000 Subject: [PATCH] Added a test for the document approved by AD action. Related to issue #796. Commit ready for merge - Legacy-Id: 11710 --- ietf/doc/tests_draft.py | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/ietf/doc/tests_draft.py b/ietf/doc/tests_draft.py index faf5bfe87..0ba88a7c2 100644 --- a/ietf/doc/tests_draft.py +++ b/ietf/doc/tests_draft.py @@ -26,6 +26,47 @@ from ietf.utils.test_utils import TestCase class ChangeStateTests(TestCase): + def test_ad_approved(self): + # get a draft in iesg evaluation, point raised + draft = make_test_data() + draft.set_state(State.objects.get(used=True, type="draft-iesg", slug="iesg-eva")) + draft.tags.add("point") + + url = urlreverse('doc_change_state', kwargs=dict(name=draft.name)) + login_testing_unauthorized(self, "ad", url) + + # normal get + r = self.client.get(url) + self.assertEqual(r.status_code, 200) + q = PyQuery(r.content) + self.assertEqual(len(q('form select[name=state]')), 1) + + events_before = draft.docevent_set.count() + mailbox_before = len(outbox) + + # set it to approved with no substate + r = self.client.post(url, + dict(state=State.objects.get(used=True, type="draft-iesg", slug="approved").pk, + substate="", + comment="Test comment")) + self.assertEqual(r.status_code, 302) + + draft = Document.objects.get(name=draft.name) + + # should now be in approved with no substate + self.assertEqual(draft.get_state_slug("draft-iesg"), "approved") + self.assertTrue(not draft.tags.filter(slug="approved")) + self.assertFalse(draft.tags.exists()) + self.assertEqual(draft.docevent_set.count(), events_before + 2) + self.assertTrue("Test comment" in draft.docevent_set.all()[0].desc) + self.assertTrue("IESG state changed" in draft.docevent_set.all()[1].desc) + + # should have sent two emails, the second one to the iesg with approved message + self.assertEqual(len(outbox), mailbox_before + 2) + self.assertTrue("Approved: " in outbox[-1]['Subject']) + self.assertTrue(draft.name in outbox[-1]['Subject']) + self.assertTrue('iesg@' in outbox[-1]['To']) + def test_change_state(self): draft = make_test_data() draft.set_state(State.objects.get(used=True, type="draft-iesg", slug="ad-eval"))