Fixes bug found during unit test of get_random_string() method.
For Python3 it is required to encode string as bytes object
before hashing.
Related-blueprint: neutron-python3
Closes-bug: #
1502148
Change-Id: I93061a831b45fc8b3ede0211af665ce02f36f38a
(cherry picked from commit
3d54459c2971f01581354c8a6b9c58abea7743d8)
rndstr = ""
random.seed(datetime.datetime.now().microsecond)
while len(rndstr) < length:
- rndstr += hashlib.sha224(str(random.random())).hexdigest()
+ base_str = str(random.random()).encode('utf-8')
+ rndstr += hashlib.sha224(base_str).hexdigest()
return rndstr[0:length]
# under the License.
import errno
+import re
import eventlet
import mock
(1, 1.49),
(2, 1.5)):
self.assertEqual(expected, utils.round_val(value))
+
+
+class TestGetRandomString(base.BaseTestCase):
+ def test_get_random_string(self):
+ length = 127
+ random_string = utils.get_random_string(length)
+ self.assertEqual(length, len(random_string))
+ regex = re.compile('^[0-9a-fA-F]+$')
+ self.assertIsNotNone(regex.match(random_string))