Skip to content

Commit

Permalink
fix: turn off automatic escaping in session request templates (ietf-t…
Browse files Browse the repository at this point in the history
…ools#8007)

* fix: turn off automatic escaping in session request templates

* test: ensure no unwanted escaping in session request emails

* test: use PersonFactory to create test users

* test: minor refactoring
  • Loading branch information
microamp authored Oct 9, 2024
1 parent a6d15c9 commit f7e0a67
Show file tree
Hide file tree
Showing 3 changed files with 59 additions and 6 deletions.
56 changes: 55 additions & 1 deletion ietf/secr/sreq/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,10 @@
from ietf.meeting.models import Session, ResourceAssociation, SchedulingEvent, Constraint
from ietf.meeting.factories import MeetingFactory, SessionFactory
from ietf.name.models import ConstraintName, TimerangeName
from ietf.person.factories import PersonFactory
from ietf.person.models import Person
from ietf.secr.sreq.forms import SessionForm
from ietf.utils.mail import outbox, empty_outbox, get_payload_text
from ietf.utils.mail import outbox, empty_outbox, get_payload_text, send_mail
from ietf.utils.timezone import date_today


Expand Down Expand Up @@ -78,6 +79,32 @@ def test_cancel(self):
self.assertRedirects(r,reverse('ietf.secr.sreq.views.main'))
self.assertEqual(SchedulingEvent.objects.filter(session=session).order_by('-id')[0].status_id, 'deleted')

def test_cancel_notification_msg(self):
to = "<iesg-secretary@ietf.org>"
subject = "Dummy subject"
template = "sreq/session_cancel_notification.txt"
meeting = MeetingFactory(type_id="ietf", date=date_today())
requester = PersonFactory(name="James O'Rourke", user__username="jimorourke")
context = {"meeting": meeting, "requester": requester}
cc = "cc.a@example.com, cc.b@example.com"
bcc = "bcc@example.com"

msg = send_mail(
None,
to,
None,
subject,
template,
context,
cc=cc,
bcc=bcc,
)
self.assertEqual(requester.name, "James O'Rourke") # note ' (single quote) in the name
self.assertIn(
f"A request to cancel a meeting session has just been submitted by {requester.name}.",
get_payload_text(msg),
)

def test_edit(self):
meeting = MeetingFactory(type_id='ietf', date=date_today())
mars = RoleFactory(name_id='chair', person__user__username='marschairman', group__acronym='mars').group
Expand Down Expand Up @@ -701,6 +728,33 @@ def test_request_notification(self):
self.assertNotIn('1 Hour, 1 Hour, 1 Hour', notification_payload)
self.assertNotIn('The third session requires your approval', notification_payload)

def test_request_notification_msg(self):
to = "<iesg-secretary@ietf.org>"
subject = "Dummy subject"
template = "sreq/session_request_notification.txt"
header = "A new"
meeting = MeetingFactory(type_id="ietf", date=date_today())
requester = PersonFactory(name="James O'Rourke", user__username="jimorourke")
context = {"header": header, "meeting": meeting, "requester": requester}
cc = "cc.a@example.com, cc.b@example.com"
bcc = "bcc@example.com"

msg = send_mail(
None,
to,
None,
subject,
template,
context,
cc=cc,
bcc=bcc,
)
self.assertEqual(requester.name, "James O'Rourke") # note ' (single quote) in the name
self.assertIn(
f"{header} meeting session request has just been submitted by {requester.name}.",
get_payload_text(msg),
)

def test_request_notification_third_session(self):
meeting = MeetingFactory(type_id='ietf', date=date_today())
ad = Person.objects.get(user__username='ad')
Expand Down
5 changes: 2 additions & 3 deletions ietf/secr/templates/sreq/session_cancel_notification.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
{% load ams_filters %}

A request to cancel a meeting session has just been submitted by {{ requester }}.
{% autoescape off %}{% load ams_filters %}

A request to cancel a meeting session has just been submitted by {{ requester }}.{% endautoescape %}
4 changes: 2 additions & 2 deletions ietf/secr/templates/sreq/session_request_notification.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{% load ams_filters %}
{% autoescape off %}{% load ams_filters %}

{% filter wordwrap:78 %}{{ header }} meeting session request has just been submitted by {{ requester }}.{% endfilter %}

{% include "includes/session_info.txt" %}
{% include "includes/session_info.txt" %}{% endautoescape %}

0 comments on commit f7e0a67

Please sign in to comment.