Skip to content

Commit 37e3ffc

Browse files
authored
fix: allow RFC Editor to add comments to RFC history (ietf-tools#9344)
1 parent 369e38f commit 37e3ffc

2 files changed

Lines changed: 25 additions & 11 deletions

File tree

ietf/doc/tests.py

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@
6666
from ietf.name.models import SessionStatusName, BallotPositionName, DocTypeName, RoleName
6767
from ietf.person.models import Person
6868
from ietf.person.factories import PersonFactory, EmailFactory
69-
from ietf.utils.mail import outbox, empty_outbox
69+
from ietf.utils.mail import get_payload_text, outbox, empty_outbox
7070
from ietf.utils.test_utils import login_testing_unauthorized, unicontent
7171
from ietf.utils.test_utils import TestCase
7272
from ietf.utils.text import normalize_text
@@ -2172,30 +2172,29 @@ def test_trailing_hypen_digit_name_bibxml(self):
21722172

21732173
class AddCommentTestCase(TestCase):
21742174
def test_add_comment(self):
2175-
draft = WgDraftFactory(name='draft-ietf-mars-test',group__acronym='mars')
2176-
url = urlreverse('ietf.doc.views_doc.add_comment', kwargs=dict(name=draft.name))
2175+
draft = WgDraftFactory(name="draft-ietf-mars-test", group__acronym="mars")
2176+
url = urlreverse("ietf.doc.views_doc.add_comment", kwargs=dict(name=draft.name))
21772177
login_testing_unauthorized(self, "secretary", url)
21782178

21792179
# normal get
21802180
r = self.client.get(url)
21812181
self.assertEqual(r.status_code, 200)
21822182
q = PyQuery(unicontent(r))
2183-
self.assertEqual(len(q('form textarea[name=comment]')), 1)
2183+
self.assertEqual(len(q("form textarea[name=comment]")), 1)
21842184

2185-
# request resurrect
21862185
events_before = draft.docevent_set.count()
21872186
mailbox_before = len(outbox)
2188-
2187+
21892188
r = self.client.post(url, dict(comment="This is a test."))
21902189
self.assertEqual(r.status_code, 302)
21912190

21922191
self.assertEqual(draft.docevent_set.count(), events_before + 1)
21932192
self.assertEqual("This is a test.", draft.latest_event().desc)
21942193
self.assertEqual("added_comment", draft.latest_event().type)
21952194
self.assertEqual(len(outbox), mailbox_before + 1)
2196-
self.assertIn("Comment added", outbox[-1]['Subject'])
2197-
self.assertIn(draft.name, outbox[-1]['Subject'])
2198-
self.assertIn('draft-ietf-mars-test@', outbox[-1]['To'])
2195+
self.assertIn("Comment added", outbox[-1]["Subject"])
2196+
self.assertIn(draft.name, outbox[-1]["Subject"])
2197+
self.assertIn("draft-ietf-mars-test@", outbox[-1]["To"])
21992198

22002199
# Make sure we can also do it as IANA
22012200
self.client.login(username="iana", password="iana+password")
@@ -2204,7 +2203,22 @@ def test_add_comment(self):
22042203
r = self.client.get(url)
22052204
self.assertEqual(r.status_code, 200)
22062205
q = PyQuery(unicontent(r))
2207-
self.assertEqual(len(q('form textarea[name=comment]')), 1)
2206+
self.assertEqual(len(q("form textarea[name=comment]")), 1)
2207+
2208+
empty_outbox()
2209+
rfc = WgRfcFactory()
2210+
self.client.login(username="rfc", password="rfc+password")
2211+
url = urlreverse("ietf.doc.views_doc.add_comment", kwargs=dict(name=rfc.name))
2212+
r = self.client.post(
2213+
url, dict(comment="This is an RFC Editor comment on an RFC.")
2214+
)
2215+
self.assertEqual(r.status_code, 302)
2216+
2217+
self.assertEqual(
2218+
"This is an RFC Editor comment on an RFC.", rfc.latest_event().desc
2219+
)
2220+
self.assertEqual(len(outbox), 1)
2221+
self.assertIn("This is an RFC Editor comment on an RFC.", get_payload_text(outbox[0]))
22082222

22092223

22102224
class TemplateTagTest(TestCase):

ietf/doc/views_doc.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1687,7 +1687,7 @@ def add_comment(request, name):
16871687
group__acronym=doc.group.acronym,
16881688
person__user=request.user)))
16891689
else:
1690-
can_add_comment = has_role(request.user, ("Area Director", "Secretariat", "IRTF Chair"))
1690+
can_add_comment = has_role(request.user, ("Area Director", "Secretariat", "IRTF Chair", "RFC Editor"))
16911691
if not can_add_comment:
16921692
# The user is a chair or secretary, but not for this WG or RG
16931693
permission_denied(request, "You need to be a chair or secretary of this group to add a comment.")

0 commit comments

Comments
 (0)