Skip to content

Commit 1f525c8

Browse files
committed
Fixed encoding issues in signed_query and signed_url
1 parent d91226c commit 1f525c8

2 files changed

Lines changed: 12 additions & 10 deletions

File tree

laterpay/utils.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
from six.moves.urllib.parse import urlencode
88

99
from laterpay import signing
10-
from laterpay.compat import encode_if_unicode
10+
from laterpay.compat import stringify
1111

1212

1313
def signed_query(secret,
@@ -44,9 +44,11 @@ def signed_query(secret,
4444
params["ts"] = str(int(time.time()))
4545

4646
param_list = [
47-
(encode_if_unicode(key),
48-
[encode_if_unicode(v) for v in val]
49-
if isinstance(val, (list, tuple)) else encode_if_unicode(val))
47+
(
48+
stringify(key), [stringify(v) for v in val]
49+
if isinstance(val, (list, tuple))
50+
else stringify(val)
51+
)
5052
for key, val in six.iteritems(params)
5153
]
5254

tests/test_utils.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# -*- coding: utf-8 -*-
2-
from __future__ import absolute_import, print_function, unicode_literals
2+
from __future__ import absolute_import, print_function
33

44
import unittest
55

@@ -8,14 +8,14 @@
88
from six.moves.urllib.parse import parse_qs
99

1010
from laterpay import utils
11-
from laterpay.compat import encode_if_unicode
11+
from laterpay.compat import stringify
1212

1313

1414
class UtilsTest(unittest.TestCase):
1515

1616
def test_signed_query_correct_signature(self):
1717
params = {
18-
'parĄm1': 'valuĘ',
18+
b'par\xc4\x84m1': u'valuĘ',
1919
'param2': ['value2', 'value3'],
2020
'ts': '1330088810',
2121
}
@@ -28,14 +28,14 @@ def test_signed_query_correct_signature(self):
2828

2929
self.assertEqual(
3030
set(qd.keys()),
31-
set(['ts', encode_if_unicode('parĄm1'), 'param2', 'hmac']),
31+
set(['ts', 'parĄm1', 'param2', 'hmac']),
3232
)
3333

3434
self.assertEqual(qd['ts'], [params['ts']])
3535
self.assertEqual(qd['param2'], params['param2'])
3636
self.assertEqual(
37-
qd[encode_if_unicode('parĄm1')],
38-
[encode_if_unicode(params['parĄm1'])],
37+
qd['parĄm1'],
38+
[stringify(params[b'par\xc4\x84m1'])],
3939
)
4040
self.assertEqual(
4141
qd['hmac'],

0 commit comments

Comments
 (0)