Fixed #24962 -- Added newline to characters escaped by contrib.admin.utils.quote()

Thanks alito for the report and patch.
This commit is contained in:
Tim Graham 2015-06-18 15:46:15 -04:00
parent 74261bc593
commit 20c6ba6ffa
2 changed files with 5 additions and 2 deletions

View File

@ -68,7 +68,7 @@ def quote(s):
res = list(s) res = list(s)
for i in range(len(res)): for i in range(len(res)):
c = res[i] c = res[i]
if c in """:/_#?;@&=+$,"[]<>%\\""": if c in """:/_#?;@&=+$,"[]<>%\n\\""":
res[i] = '_%02X' % ord(c) res[i] = '_%02X' % ord(c)
return ''.join(res) return ''.join(res)

View File

@ -9,7 +9,7 @@ from django.contrib import admin
from django.contrib.admin import helpers from django.contrib.admin import helpers
from django.contrib.admin.utils import ( from django.contrib.admin.utils import (
NestedObjects, display_for_field, flatten, flatten_fieldsets, NestedObjects, display_for_field, flatten, flatten_fieldsets,
label_for_field, lookup_field, label_for_field, lookup_field, quote,
) )
from django.db import DEFAULT_DB_ALIAS, models from django.db import DEFAULT_DB_ALIAS, models
from django.test import TestCase, override_settings from django.test import TestCase, override_settings
@ -379,3 +379,6 @@ class UtilsTests(TestCase):
}), }),
) )
self.assertEqual(flatten_fieldsets(fieldsets), ['url', 'title', 'content', 'sites']) self.assertEqual(flatten_fieldsets(fieldsets), ['url', 'title', 'content', 'sites'])
def test_quote(self):
self.assertEqual(quote('something\nor\nother'), 'something_0Aor_0Aother')