Fixed UnicodeEncodeError for Python2 unicode objects
On python2 in case of unicode objects, str() was causing UnicodeEncodeError.
Also utf8 encoding as a default (mostly for Python2)
Change-Id: I64373133f65c5b11daa3462b7c21a55d06738c09
(cherry picked from commit 17b9e9d42c
)
This commit is contained in:
parent
bcd6680701
commit
c1b787e682
|
@ -13,6 +13,7 @@
|
||||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
# License for the specific language governing permissions and limitations
|
# License for the specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
|
import six
|
||||||
from tooz import hashring
|
from tooz import hashring
|
||||||
|
|
||||||
|
|
||||||
|
@ -53,7 +54,7 @@ class Partitioner(object):
|
||||||
def _hash_object(obj):
|
def _hash_object(obj):
|
||||||
if hasattr(obj, "__tooz_hash__"):
|
if hasattr(obj, "__tooz_hash__"):
|
||||||
return obj.__tooz_hash__()
|
return obj.__tooz_hash__()
|
||||||
return str(obj).encode()
|
return six.text_type(obj).encode('utf8')
|
||||||
|
|
||||||
def members_for_object(self, obj, ignore_members=None, replicas=1):
|
def members_for_object(self, obj, ignore_members=None, replicas=1):
|
||||||
"""Return the members responsible for an object.
|
"""Return the members responsible for an object.
|
||||||
|
|
|
@ -80,7 +80,7 @@ class TestPartitioner(tests.TestWithCoordinator):
|
||||||
def test_members_of_object_and_others(self):
|
def test_members_of_object_and_others(self):
|
||||||
p = self._coord.join_partitioned_group(self.group_id)
|
p = self._coord.join_partitioned_group(self.group_id)
|
||||||
self._add_members(3)
|
self._add_members(3)
|
||||||
o = object()
|
o = six.text_type(u"чупакабра")
|
||||||
m = p.members_for_object(o)
|
m = p.members_for_object(o)
|
||||||
self.assertEqual(1, len(m))
|
self.assertEqual(1, len(m))
|
||||||
m = m.pop()
|
m = m.pop()
|
||||||
|
|
Loading…
Reference in New Issue