Changed the '%s <%s>'%(name,email) idiom in several places to use email.utils.formataddr() instead, to avoid future problems with names that would need quotes. Added comments in 2 places where this change would not be appropriate.

- Legacy-Id: 13536
This commit is contained in:
Henrik Levkowetz 2017-06-05 22:40:11 +00:00
parent 8b72b6a29a
commit 55d36e284d
4 changed files with 14 additions and 5 deletions

View file

@ -278,7 +278,12 @@ class Role(models.Model):
return u"%s is %s in %s" % (self.person.plain_name(), self.name.name, self.group.acronym or self.group.name)
def name_and_email(self):
"Returns name and email, e.g.: u'Ano Nymous <ano@nymous.org>' "
"""
Returns name and email, e.g.: u'Ano Nymous <ano@nymous.org>'
Is intended for display use, not in email context.
Use self.formatted_email() for that.
"""
unreachable()
if self.person:
return u"%s <%s>" % (self.person.plain_name(), self.email.address)
else:

View file

@ -181,7 +181,7 @@ class Recipient(models.Model):
addrs = []
if 'submission' in kwargs:
submission = kwargs['submission']
addrs.extend(["%s <%s>" % (author["name"], author["email"]) for author in submission.authors if author.get("email")])
addrs.extend([ email.utils.formataddr((author["name"], author["email"])) for author in submission.authors if author.get("email")])
return addrs
def gather_submission_group_chairs(self, **kwargs):

View file

@ -243,7 +243,11 @@ class Email(models.Model):
return self.address
def name_and_email(self):
"Returns name and email, e.g.: u'Ano Nymous <ano@nymous.org>' "
"""
Returns name and email, e.g.: u'Ano Nymous <ano@nymous.org>'
Is intended for display use, not in email context.
Use self.formatted_email() for that.
"""
if self.person:
return u"%s <%s>" % (self.person.plain_name(), self.address)
else:

View file

@ -153,7 +153,7 @@ class SubmitTests(TestCase):
if r.status_code == 302:
submission = Submission.objects.get(name=name)
self.assertEqual(submission.submitter, u"%s <%s>" % (submitter_name, submitter_email))
self.assertEqual(submission.submitter, email.utils.formataddr((submitter_name, submitter_email)))
self.assertEqual(submission.replaces, ",".join(d.name for d in DocAlias.objects.filter(pk__in=replaces.split(",") if replaces else [])))
return r
@ -1464,6 +1464,6 @@ Subject: test
if r.status_code == 302:
submission = Submission.objects.get(name=name)
self.assertEqual(submission.submitter, u"%s <%s>" % (submitter_name, submitter_email))
self.assertEqual(submission.submitter, email.utils.formataddr((submitter_name, submitter_email)))
return r