Commit 1a66f53f authored by Claude Paroz's avatar Claude Paroz
Browse files

Fixed #18340 -- Fixed formtools form_hmac with Unicode input

Using cPickle, two apparently identical Unicode strings could
generate different pickled results depending on previous operations
on those strings.
parent 2aebd79a
Loading
Loading
Loading
Loading
+2 −5
Original line number Diff line number Diff line
@@ -156,9 +156,6 @@ class PreviewTests(TestCase):


class FormHmacTests(unittest.TestCase):
    """
    Same as SecurityHashTests, but with form_hmac
    """

    def test_textfield_hash(self):
        """
@@ -166,8 +163,8 @@ class FormHmacTests(unittest.TestCase):
        leading/trailing whitespace so as to be friendly to broken browsers that
        submit it (usually in textareas).
        """
        f1 = HashTestForm({'name': 'joe', 'bio': 'Nothing notable.'})
        f2 = HashTestForm({'name': '  joe', 'bio': 'Nothing notable.  '})
        f1 = HashTestForm({'name': u'joe', 'bio': u'Nothing notable.'})
        f2 = HashTestForm({'name': u'  joe', 'bio': u'Nothing notable.  '})
        hash1 = utils.form_hmac(f1)
        hash2 = utils.form_hmac(f2)
        self.assertEqual(hash1, hash2)
+2 −4
Original line number Diff line number Diff line
try:
    import cPickle as pickle
except ImportError:
# Do not try cPickle here (see #18340)
import pickle

from django.utils.crypto import salted_hmac