Merge "fix expirer bug with unicode container listings"
This commit is contained in:
commit
ec0273b7bb
@ -118,7 +118,7 @@ class ObjectExpirer(Daemon):
|
||||
obj = o['name'].encode('utf8')
|
||||
if processes > 0:
|
||||
obj_process = int(
|
||||
hashlib.md5('%s/%s' % (container, obj)).
|
||||
hashlib.md5('%s/%s' % (str(container), obj)).
|
||||
hexdigest(), 16)
|
||||
if obj_process % processes != process:
|
||||
continue
|
||||
|
@ -153,11 +153,12 @@ class TestObjectExpirer(TestCase):
|
||||
def delete_container(*a, **kw):
|
||||
pass
|
||||
|
||||
ukey = u'3'
|
||||
containers = {
|
||||
0: set('1-one 2-two 3-three'.split()),
|
||||
1: set('2-two 3-three 4-four'.split()),
|
||||
2: set('5-five 6-six'.split()),
|
||||
3: set('7-seven'.split()),
|
||||
ukey: set(u'7-seven\u2661'.split()),
|
||||
}
|
||||
x = ObjectExpirer({})
|
||||
x.swift = InternalClient(containers)
|
||||
@ -168,6 +169,8 @@ class TestObjectExpirer(TestCase):
|
||||
x.run_once()
|
||||
self.assertNotEqual(deleted_objects, x.deleted_objects)
|
||||
deleted_objects = deepcopy(x.deleted_objects)
|
||||
self.assertEqual(containers[ukey].pop(),
|
||||
deleted_objects[ukey].pop().decode('utf8'))
|
||||
self.assertEqual(containers, deleted_objects)
|
||||
|
||||
def test_delete_object(self):
|
||||
|
Loading…
x
Reference in New Issue
Block a user