Merged in [9142] from rjsparks@nostrum.com:

Avoid creating blank line before headers on IPR notification email. Fixes #1609.
 - Legacy-Id: 9151
Note: SVN reference [9142] has been migrated to Git commit c307b1f734
This commit is contained in:
Henrik Levkowetz 2015-03-04 19:25:51 +00:00
commit 2263c87f81
3 changed files with 24 additions and 6 deletions

View file

@ -15,6 +15,7 @@ from ietf.ipr.utils import get_genitive, get_ipr_summary
from ietf.message.models import Message
from ietf.utils.test_utils import TestCase
from ietf.utils.test_data import make_test_data
from ietf.utils.mail import outbox
class IprTests(TestCase):
@ -472,12 +473,30 @@ I would like to revoke this declaration.
# fail if not logged in
r = self.client.get(url,follow=True)
self.assertTrue("Sign In" in r.content)
len_before = len(outbox)
# successful post
self.client.login(username="secretary", password="secretary+password")
r = self.client.get(url,follow=True)
self.assertEqual(r.status_code,200)
ipr = IprDisclosureBase.objects.get(title='Statement regarding rights')
self.assertEqual(ipr.state.slug,'posted')
url = urlreverse('ipr_notify',kwargs={ 'id':ipr.id, 'type':'posted'})
r = self.client.get(url,follow=True)
q = PyQuery(r.content)
data = dict()
for name in ['form-TOTAL_FORMS','form-INITIAL_FORMS','form-MIN_NUM_FORMS','form-MAX_NUM_FORMS']:
data[name] = q('form input[name=%s]'%name).val()
for i in range(0,int(data['form-TOTAL_FORMS'])):
name = 'form-%d-type' % i
data[name] = q('form input[name=%s]'%name).val()
text_name = 'form-%d-text' % i
data[text_name] = q('form textarea[name=%s]'%text_name).text()
r = self.client.post(url, data )
self.assertEqual(r.status_code,302)
self.assertEqual(len(outbox),len_before+2)
self.assertTrue('george@acme.com' in outbox[len_before]['To'])
self.assertTrue('aread@ietf.org' in outbox[len_before+1]['To'])
self.assertTrue('mars-wg@ietf.org' in outbox[len_before+1]['Cc'])
def test_process_response_email(self):
# first send a mail
@ -518,4 +537,4 @@ Subject: test
""".format(data['reply_to'],datetime.datetime.now().ctime())
result = process_response_email(message_string)
self.assertIsInstance(result,Message)
self.assertFalse(event.response_past_due())
self.assertFalse(event.response_past_due())

View file

@ -587,7 +587,7 @@ def notify(request, id, type):
response_due = datetime.datetime.now().date() + datetime.timedelta(days=30),
message = message,
)
messages.success(request,'Notifications send')
messages.success(request,'Notifications sent')
return redirect("ipr_show", id=ipr.id)
else:
@ -832,4 +832,4 @@ def update(request, id):
ipr = get_object_or_404(IprDisclosureBase,id=id)
child = ipr.get_child()
type = class_to_type[child.__class__.__name__]
return new(request, type, updates=id)
return new(request, type, updates=id)

View file

@ -1,5 +1,4 @@
{% load ietf_filters %}
To: {{ to_email }}
{% load ietf_filters %}To: {{ to_email }}
From: IETF Secretariat <ietf-ipr@ietf.org>
Subject: IPR Disclosure {{ ipr.title }}
Cc: {{ cc_email }}
@ -12,4 +11,4 @@ An IPR disclosure that pertains to your {{ doc_info }} was submitted to the IETF
Thank you
IETF Secretariat
IETF Secretariat