From 9c9b15bec8d4f8a2084644b6847800ef9799051e Mon Sep 17 00:00:00 2001 From: Henrik Levkowetz <henrik@levkowetz.com> Date: Wed, 30 Nov 2016 15:56:22 +0000 Subject: [PATCH] Added guards against picking up non-ascii title and abstract from drafts submitted in xml form. - Legacy-Id: 12429 --- ietf/submit/forms.py | 9 +++++++-- ietf/submit/test_submission.xml | 4 ++-- ietf/submit/tests.py | 2 +- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/ietf/submit/forms.py b/ietf/submit/forms.py index 46699e2b2..6e09476ba 100644 --- a/ietf/submit/forms.py +++ b/ietf/submit/forms.py @@ -5,6 +5,7 @@ import email import pytz import xml2rfc import tempfile +from unidecode import unidecode from django import forms from django.conf import settings @@ -170,8 +171,12 @@ class SubmissionUploadForm(forms.Form): else: self.revision = None self.filename = draftname - self.title = self.xmlroot.findtext('front/title') - self.abstract = self.xmlroot.findtext('front/abstract') + self.title = self.xmlroot.findtext('front/title').strip() + if type(self.title) is unicode: + self.title = unidecode(self.title) + self.abstract = self.xmlroot.findtext('front/abstract').strip() + if type(self.abstract) is unicode: + self.abstract = unidecode(self.abstract) self.author_list = [] author_info = self.xmlroot.findall('front/author') for author in author_info: diff --git a/ietf/submit/test_submission.xml b/ietf/submit/test_submission.xml index 99197afd5..a313e3706 100644 --- a/ietf/submit/test_submission.xml +++ b/ietf/submit/test_submission.xml @@ -1,9 +1,9 @@ -<?xml version="1.0" encoding="US-ASCII"?> +<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE rfc SYSTEM "rfc2629.dtd" []> <?rfc toc="yes"?> <rfc category="info" docName="%(name)s" ipr="trust200902"> <front> - <title>Testing Tests</title> + <title>Testing Tests</title> <author fullname="Author Name" initials="A." surname="Name"> <organization>Test Centre Inc.</organization> diff --git a/ietf/submit/tests.py b/ietf/submit/tests.py index 53c898df4..a767e7c34 100644 --- a/ietf/submit/tests.py +++ b/ietf/submit/tests.py @@ -796,7 +796,7 @@ class SubmitTests(TestCase): self.assertTrue(name in open(os.path.join(self.staging_dir, u"%s-%s.txt" % (name, rev))).read()) self.assertTrue(os.path.exists(os.path.join(self.staging_dir, u"%s-%s.xml" % (name, rev)))) self.assertTrue(name in open(os.path.join(self.staging_dir, u"%s-%s.xml" % (name, rev))).read()) - self.assertTrue('<?xml version="1.0" encoding="US-ASCII"?>' in open(os.path.join(self.staging_dir, u"%s-%s.xml" % (name, rev))).read()) + self.assertTrue('<?xml version="1.0" encoding="UTF-8"?>' in open(os.path.join(self.staging_dir, u"%s-%s.xml" % (name, rev))).read()) self.assertTrue(os.path.exists(os.path.join(self.staging_dir, u"%s-%s.pdf" % (name, rev)))) self.assertTrue('This is PDF' in open(os.path.join(self.staging_dir, u"%s-%s.pdf" % (name, rev))).read()) self.assertTrue(os.path.exists(os.path.join(self.staging_dir, u"%s-%s.ps" % (name, rev))))