Fix swift with python <2.7.9
Closes-Bug: #1831932 Change-Id: I0d33864f4bffa401082548ee9a52f6eb50cb1f39
This commit is contained in:
parent
05bfaf7ae1
commit
dca658103a
@ -649,7 +649,8 @@ class StrAnonymizer(str):
|
||||
|
||||
def __new__(cls, data, method, salt):
|
||||
method = method.lower()
|
||||
if method not in hashlib.algorithms_guaranteed:
|
||||
if method not in (hashlib.algorithms if six.PY2 else
|
||||
hashlib.algorithms_guaranteed):
|
||||
raise ValueError('Unsupported hashing method: %r' % method)
|
||||
s = str.__new__(cls, data or '')
|
||||
s.method = method
|
||||
|
@ -3565,6 +3565,22 @@ cluster_dfw1 = http://dfw1.host/v1/
|
||||
self.assertRaises(ValueError, utils.StrAnonymizer,
|
||||
'Swift is great!', 'sha257', '')
|
||||
|
||||
def test_str_anonymizer_python_maddness(self):
|
||||
with mock.patch('swift.common.utils.hashlib') as mocklib:
|
||||
if six.PY2:
|
||||
# python <2.7.9 doesn't have this algorithms_guaranteed, but
|
||||
# our if block short-circuts before we explode
|
||||
mocklib.algorithms = hashlib.algorithms
|
||||
mocklib.algorithms_guaranteed.sideEffect = AttributeError()
|
||||
else:
|
||||
# python 3 doesn't have this algorithms but our if block
|
||||
# short-circuts before we explode
|
||||
mocklib.algorithms.sideEffect.sideEffect = AttributeError()
|
||||
mocklib.algorithms_guaranteed = hashlib.algorithms_guaranteed
|
||||
utils.StrAnonymizer('Swift is great!', 'sha1', '')
|
||||
self.assertRaises(ValueError, utils.StrAnonymizer,
|
||||
'Swift is great!', 'sha257', '')
|
||||
|
||||
def test_str_format_time(self):
|
||||
dt = utils.StrFormatTime(10000.123456789)
|
||||
self.assertEqual(str(dt), '10000.123456789')
|
||||
|
Loading…
Reference in New Issue
Block a user