paybox: improve shared_secret validation (#49822)
This commit is contained in:
parent
2acbdd4095
commit
5afe44fd60
|
@ -253,7 +253,7 @@ class Payment(PaymentCommon):
|
||||||
'name': 'shared_secret',
|
'name': 'shared_secret',
|
||||||
'caption': 'Secret partagé (clé HMAC)',
|
'caption': 'Secret partagé (clé HMAC)',
|
||||||
'validation': lambda x: isinstance(x, str)
|
'validation': lambda x: isinstance(x, str)
|
||||||
and all(a.lower() in '0123456789abcdef' for a in x),
|
and all(a.lower() in '0123456789abcdef' for a in x) and (len(x) % 2 == 0),
|
||||||
'required': True,
|
'required': True,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -25,6 +25,8 @@ import six
|
||||||
from six.moves.urllib import parse as urllib
|
from six.moves.urllib import parse as urllib
|
||||||
from xml.etree import ElementTree as ET
|
from xml.etree import ElementTree as ET
|
||||||
|
|
||||||
|
import pytest
|
||||||
|
|
||||||
import eopayment.paybox as paybox
|
import eopayment.paybox as paybox
|
||||||
import eopayment
|
import eopayment
|
||||||
|
|
||||||
|
@ -359,3 +361,18 @@ FBFKOZhgBJnkC+l6+XhT4aYWKaQ4ocmOMV92yjeXTE4='''
|
||||||
if node.attrib['type'] == 'hidden'))
|
if node.attrib['type'] == 'hidden'))
|
||||||
self.assertIn('PBX_AUTOSEULE', form_params)
|
self.assertIn('PBX_AUTOSEULE', form_params)
|
||||||
self.assertEqual(form_params['PBX_AUTOSEULE'], 'O')
|
self.assertEqual(form_params['PBX_AUTOSEULE'], 'O')
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize('name,value,result', [
|
||||||
|
('shared_secret', '1f', True),
|
||||||
|
('shared_secret', '1fxx', False),
|
||||||
|
('shared_secret', '1fa', False),
|
||||||
|
('shared_secret', '1fa2', True),
|
||||||
|
])
|
||||||
|
def test_param_validation(name, value, result):
|
||||||
|
for param in paybox.Payment.description['parameters']:
|
||||||
|
if param['name'] == name:
|
||||||
|
assert param['validation'](value) is result
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
assert False, 'param %s not found' % name
|
||||||
|
|
Loading…
Reference in New Issue