Python 3: make tests from v2_0/test_access.py pass

This fixes calls to the hash_signed_token() and cms_hash_token() functions, by
making sure they are given bytes.

Change-Id: I83ac48a845cd09150b01afad6f0549ee83c20ddd
This commit is contained in:
Cyril Roelandt
2014-01-16 20:33:52 +01:00
parent eab811c307
commit 6f28bdabe9
3 changed files with 13 additions and 3 deletions

View File

@@ -24,6 +24,7 @@ or eventlet.green.subprocess based on if os module is patched by eventlet.
import errno import errno
import hashlib import hashlib
import logging import logging
import six
from keystoneclient import exceptions from keystoneclient import exceptions
@@ -263,6 +264,8 @@ def cms_hash_token(token_id):
return None return None
if is_ans1_token(token_id): if is_ans1_token(token_id):
hasher = hashlib.md5() hasher = hashlib.md5()
if isinstance(token_id, six.text_type):
token_id = token_id.encode('utf-8')
hasher.update(token_id) hasher.update(token_id)
return hasher.hexdigest() return hasher.hexdigest()
else: else:

View File

@@ -1232,6 +1232,8 @@ class AuthProtocol(object):
if not revoked_tokens: if not revoked_tokens:
return return
revoked_ids = (x['id'] for x in revoked_tokens) revoked_ids = (x['id'] for x in revoked_tokens)
if isinstance(signed_text, six.text_type):
signed_text = signed_text.encode('utf-8')
token_id = utils.hash_signed_token(signed_text) token_id = utils.hash_signed_token(signed_text)
for revoked_id in revoked_ids: for revoked_id in revoked_ids:
if token_id == revoked_id: if token_id == revoked_id:

View File

@@ -99,14 +99,19 @@ class Examples(fixtures.Fixture):
self.v3_UUID_TOKEN_BIND = '2f61f73e1c854cbb9534c487f9bd63c2' self.v3_UUID_TOKEN_BIND = '2f61f73e1c854cbb9534c487f9bd63c2'
self.v3_UUID_TOKEN_UNKNOWN_BIND = '7ed9781b62cd4880b8d8c6788ab1d1e2' self.v3_UUID_TOKEN_UNKNOWN_BIND = '7ed9781b62cd4880b8d8c6788ab1d1e2'
self.REVOKED_TOKEN_HASH = utils.hash_signed_token(self.REVOKED_TOKEN) revoked_token = self.REVOKED_TOKEN
if isinstance(revoked_token, six.text_type):
revoked_token = revoked_token.encode('utf-8')
self.REVOKED_TOKEN_HASH = utils.hash_signed_token(revoked_token)
self.REVOKED_TOKEN_LIST = ( self.REVOKED_TOKEN_LIST = (
{'revoked': [{'id': self.REVOKED_TOKEN_HASH, {'revoked': [{'id': self.REVOKED_TOKEN_HASH,
'expires': timeutils.utcnow()}]}) 'expires': timeutils.utcnow()}]})
self.REVOKED_TOKEN_LIST_JSON = jsonutils.dumps(self.REVOKED_TOKEN_LIST) self.REVOKED_TOKEN_LIST_JSON = jsonutils.dumps(self.REVOKED_TOKEN_LIST)
self.REVOKED_v3_TOKEN_HASH = utils.hash_signed_token( revoked_v3_token = self.REVOKED_v3_TOKEN
self.REVOKED_v3_TOKEN) if isinstance(revoked_v3_token, six.text_type):
revoked_v3_token = revoked_v3_token.encode('utf-8')
self.REVOKED_v3_TOKEN_HASH = utils.hash_signed_token(revoked_v3_token)
self.REVOKED_v3_TOKEN_LIST = ( self.REVOKED_v3_TOKEN_LIST = (
{'revoked': [{'id': self.REVOKED_v3_TOKEN_HASH, {'revoked': [{'id': self.REVOKED_v3_TOKEN_HASH,
'expires': timeutils.utcnow()}]}) 'expires': timeutils.utcnow()}]})