Merge pull request #51 from chmouel/sync-container-meta
Refactor test_containers.
This commit is contained in:
@@ -25,9 +25,9 @@ import tests.units.base as test_base
|
|||||||
import tests.units.fakes as fakes
|
import tests.units.fakes as fakes
|
||||||
|
|
||||||
|
|
||||||
class TestContainers(test_base.TestCase):
|
class TestContainersBase(test_base.TestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestContainers, self).setUp()
|
super(TestContainersBase, self).setUp()
|
||||||
self.container_cls = swsync.containers.Containers()
|
self.container_cls = swsync.containers.Containers()
|
||||||
|
|
||||||
self.tenant_name = 'foo1'
|
self.tenant_name = 'foo1'
|
||||||
@@ -41,6 +41,146 @@ class TestContainers(test_base.TestCase):
|
|||||||
self.dest_storage_cnx = (urlparse.urlparse(self.dest_storage_url),
|
self.dest_storage_cnx = (urlparse.urlparse(self.dest_storage_url),
|
||||||
None)
|
None)
|
||||||
|
|
||||||
|
|
||||||
|
class TestContainersSyncMetadata(TestContainersBase):
|
||||||
|
|
||||||
|
def _base_sync_metadata(self, orig_dict={},
|
||||||
|
dest_dict={},
|
||||||
|
get_called=[],
|
||||||
|
post_called=[],
|
||||||
|
info_called=[],
|
||||||
|
raise_post_container=False):
|
||||||
|
|
||||||
|
def fake_info(msg):
|
||||||
|
info_called.append(msg)
|
||||||
|
|
||||||
|
def get_container(*args, **kwargs):
|
||||||
|
if len(get_called) == 0:
|
||||||
|
get_called.append("TESTED")
|
||||||
|
return orig_dict
|
||||||
|
else:
|
||||||
|
get_called.append("TESTED2")
|
||||||
|
return dest_dict
|
||||||
|
self.stubs.Set(swiftclient, 'get_container', get_container)
|
||||||
|
|
||||||
|
def post_container(url, token, container, headers, **kwargs):
|
||||||
|
post_called.append(headers)
|
||||||
|
|
||||||
|
if raise_post_container:
|
||||||
|
raise swiftclient.client.ClientException("Error in testing")
|
||||||
|
self.stubs.Set(swiftclient, 'post_container', post_container)
|
||||||
|
|
||||||
|
def head_container(*args, **kwargs):
|
||||||
|
pass
|
||||||
|
|
||||||
|
self.stubs.Set(swiftclient, 'head_container', head_container)
|
||||||
|
self.stubs.Set(logging, 'info', fake_info)
|
||||||
|
|
||||||
|
self.container_cls.sync(self.orig_storage_cnx,
|
||||||
|
self.orig_storage_url,
|
||||||
|
'token',
|
||||||
|
self.dest_storage_cnx,
|
||||||
|
self.dest_storage_url,
|
||||||
|
'token', 'cont1')
|
||||||
|
|
||||||
|
def test_sync_containers_metada_added_on_dest(self):
|
||||||
|
get_called = []
|
||||||
|
post_called = []
|
||||||
|
info_called = []
|
||||||
|
|
||||||
|
orig_dict = ({'x-container-meta-om': 'enkl',
|
||||||
|
'x-trans-id': 'ffs',
|
||||||
|
'x-container-bytes-used': '100',
|
||||||
|
'x-container-object-count': '2'},
|
||||||
|
[{'last_modified': '2010', 'name': 'foo'}])
|
||||||
|
dest_dict = ({'x-container-meta-om': 'enkl',
|
||||||
|
'x-container-meta-psg': 'magique',
|
||||||
|
'x-trans-id': 'ffs',
|
||||||
|
'x-container-bytes-used': '200',
|
||||||
|
'x-container-object-count': '2'},
|
||||||
|
[{'last_modified': '2010', 'name': 'foo'}])
|
||||||
|
|
||||||
|
self._base_sync_metadata(orig_dict, dest_dict, get_called,
|
||||||
|
post_called, info_called)
|
||||||
|
self.assertEqual(len(get_called), 2)
|
||||||
|
self.assertEqual(len(post_called), 1)
|
||||||
|
self.assertEquals(post_called[0]['x-container-meta-psg'], '')
|
||||||
|
self.assertEquals(post_called[0]['x-container-meta-om'], 'enkl')
|
||||||
|
self.assertIn('HEADER: sync headers: cont1', info_called)
|
||||||
|
|
||||||
|
def test_sync_containers_metada_added_on_orig(self):
|
||||||
|
get_called = []
|
||||||
|
post_called = []
|
||||||
|
info_called = []
|
||||||
|
|
||||||
|
orig_dict = ({'x-container-meta-om': 'enkl',
|
||||||
|
'x-trans-id': 'ffs',
|
||||||
|
'x-container-bytes-used': '100',
|
||||||
|
'x-container-object-count': '2'},
|
||||||
|
[{'last_modified': '2010', 'name': 'foo'}])
|
||||||
|
|
||||||
|
dest_dict = ({'x-trans-id': 'ffs',
|
||||||
|
'x-container-bytes-used': '200',
|
||||||
|
'x-container-object-count': '2'},
|
||||||
|
[{'last_modified': '2010', 'name': 'foo'}])
|
||||||
|
|
||||||
|
self._base_sync_metadata(orig_dict, dest_dict, get_called,
|
||||||
|
post_called, info_called)
|
||||||
|
|
||||||
|
self.assertIn('HEADER: sync headers: cont1', info_called)
|
||||||
|
self.assertEqual(len(get_called), 2)
|
||||||
|
self.assertEqual(len(post_called), 1)
|
||||||
|
self.assertEquals(post_called[0]['x-container-meta-om'], 'enkl')
|
||||||
|
|
||||||
|
def test_sync_containers_metada_changed(self):
|
||||||
|
get_called = []
|
||||||
|
post_called = []
|
||||||
|
info_called = []
|
||||||
|
|
||||||
|
orig_dict = ({'x-container-meta-psg': 'magic',
|
||||||
|
'x-trans-id': 'ffs',
|
||||||
|
'x-container-bytes-used': '100',
|
||||||
|
'x-container-object-count': '2'},
|
||||||
|
[{'last_modified': '2010', 'name': 'foo'}])
|
||||||
|
|
||||||
|
dest_dict = ({'x-container-meta-psg': 'marseille',
|
||||||
|
'x-trans-id': 'ffs',
|
||||||
|
'x-container-bytes-used': '200',
|
||||||
|
'x-container-object-count': '2'},
|
||||||
|
[{'last_modified': '2010', 'name': 'foo'}])
|
||||||
|
|
||||||
|
self._base_sync_metadata(orig_dict, dest_dict, get_called,
|
||||||
|
post_called, info_called)
|
||||||
|
self.assertEqual(len(get_called), 2)
|
||||||
|
self.assertEqual(len(post_called), 1)
|
||||||
|
self.assertEquals(post_called[0]['x-container-meta-psg'], 'magic')
|
||||||
|
self.assertIn('HEADER: sync headers: cont1', info_called)
|
||||||
|
|
||||||
|
def test_sync_containers_metadata_raise_client(self):
|
||||||
|
get_called = []
|
||||||
|
post_called = []
|
||||||
|
info_called = []
|
||||||
|
|
||||||
|
orig_dict = ({'x-container-meta-psg': 'magic',
|
||||||
|
'x-trans-id': 'ffs',
|
||||||
|
'x-container-bytes-used': '100',
|
||||||
|
'x-container-object-count': '2'},
|
||||||
|
[{'last_modified': '2010', 'name': 'foo'}])
|
||||||
|
|
||||||
|
dest_dict = ({'x-container-meta-psg': 'marseille',
|
||||||
|
'x-trans-id': 'ffs',
|
||||||
|
'x-container-bytes-used': '200',
|
||||||
|
'x-container-object-count': '2'},
|
||||||
|
[{'last_modified': '2010', 'name': 'foo'}])
|
||||||
|
|
||||||
|
self._base_sync_metadata(orig_dict, dest_dict,
|
||||||
|
get_called, post_called,
|
||||||
|
info_called, raise_post_container=True)
|
||||||
|
self.assertIn('ERROR: updating container metadata: cont1, ',
|
||||||
|
info_called)
|
||||||
|
|
||||||
|
|
||||||
|
class TestContainers(TestContainersBase):
|
||||||
def test_sync_when_container_nothere(self):
|
def test_sync_when_container_nothere(self):
|
||||||
get_cnt_called = []
|
get_cnt_called = []
|
||||||
|
|
||||||
@@ -270,193 +410,3 @@ class TestContainers(test_base.TestCase):
|
|||||||
"cnx1", "token1", orig_containers, dest_containers)
|
"cnx1", "token1", orig_containers, dest_containers)
|
||||||
|
|
||||||
self.assertEqual(len(called), 1)
|
self.assertEqual(len(called), 1)
|
||||||
|
|
||||||
def test_sync_containers_metada_added_on_dest(self):
|
|
||||||
get_called = []
|
|
||||||
post_called = []
|
|
||||||
|
|
||||||
def get_container(*args, **kwargs):
|
|
||||||
if len(get_called) == 0:
|
|
||||||
get_called.append("TESTED")
|
|
||||||
return ({
|
|
||||||
'x-container-meta-om': 'enkl',
|
|
||||||
'x-trans-id': 'ffs',
|
|
||||||
'x-container-bytes-used': '100',
|
|
||||||
'x-container-object-count': '2'},
|
|
||||||
[{'last_modified': '2010', 'name': 'foo'}])
|
|
||||||
else:
|
|
||||||
get_called.append("TESTED2")
|
|
||||||
return ({
|
|
||||||
'x-container-meta-om': 'enkl',
|
|
||||||
'x-container-meta-psg': 'magique',
|
|
||||||
'x-trans-id': 'ffs',
|
|
||||||
'x-container-bytes-used': '200',
|
|
||||||
'x-container-object-count': '2'},
|
|
||||||
[{'last_modified': '2010', 'name': 'foo'}])
|
|
||||||
self.stubs.Set(swiftclient, 'get_container', get_container)
|
|
||||||
|
|
||||||
self.stubs.Set(swiftclient, 'get_container', get_container)
|
|
||||||
|
|
||||||
def post_container(url, token, container, headers, **kwargs):
|
|
||||||
post_called.append(headers)
|
|
||||||
self.stubs.Set(swiftclient, 'post_container', post_container)
|
|
||||||
|
|
||||||
def head_container(*args, **kwargs):
|
|
||||||
pass
|
|
||||||
self.stubs.Set(swiftclient, 'head_container', head_container)
|
|
||||||
|
|
||||||
self.container_cls.sync(
|
|
||||||
self.orig_storage_cnx,
|
|
||||||
self.orig_storage_url,
|
|
||||||
'token',
|
|
||||||
self.dest_storage_cnx,
|
|
||||||
self.dest_storage_url,
|
|
||||||
'token',
|
|
||||||
'cont1')
|
|
||||||
|
|
||||||
self.assertEqual(len(get_called), 2)
|
|
||||||
self.assertEqual(len(post_called), 1)
|
|
||||||
self.assertEquals(post_called[0]['x-container-meta-psg'], '')
|
|
||||||
self.assertEquals(post_called[0]['x-container-meta-om'], 'enkl')
|
|
||||||
|
|
||||||
def test_sync_containers_metada_added_on_orig(self):
|
|
||||||
get_called = []
|
|
||||||
post_called = []
|
|
||||||
|
|
||||||
def get_container(*args, **kwargs):
|
|
||||||
if len(get_called) == 0:
|
|
||||||
get_called.append("TESTED")
|
|
||||||
return ({
|
|
||||||
'x-container-meta-om': 'enkl',
|
|
||||||
'x-trans-id': 'ffs',
|
|
||||||
'x-container-bytes-used': '100',
|
|
||||||
'x-container-object-count': '2'},
|
|
||||||
[{'last_modified': '2010', 'name': 'foo'}])
|
|
||||||
else:
|
|
||||||
get_called.append("TESTED2")
|
|
||||||
return ({
|
|
||||||
'x-trans-id': 'ffs',
|
|
||||||
'x-container-bytes-used': '200',
|
|
||||||
'x-container-object-count': '2'},
|
|
||||||
[{'last_modified': '2010', 'name': 'foo'}])
|
|
||||||
self.stubs.Set(swiftclient, 'get_container', get_container)
|
|
||||||
|
|
||||||
self.stubs.Set(swiftclient, 'get_container', get_container)
|
|
||||||
|
|
||||||
def post_container(url, token, container, headers, **kwargs):
|
|
||||||
post_called.append(headers)
|
|
||||||
self.stubs.Set(swiftclient, 'post_container', post_container)
|
|
||||||
|
|
||||||
def head_container(*args, **kwargs):
|
|
||||||
pass
|
|
||||||
self.stubs.Set(swiftclient, 'head_container', head_container)
|
|
||||||
|
|
||||||
self.container_cls.sync(
|
|
||||||
self.orig_storage_cnx,
|
|
||||||
self.orig_storage_url,
|
|
||||||
'token',
|
|
||||||
self.dest_storage_cnx,
|
|
||||||
self.dest_storage_url,
|
|
||||||
'token',
|
|
||||||
'cont1')
|
|
||||||
|
|
||||||
self.assertEqual(len(get_called), 2)
|
|
||||||
self.assertEqual(len(post_called), 1)
|
|
||||||
self.assertEquals(post_called[0]['x-container-meta-om'], 'enkl')
|
|
||||||
|
|
||||||
def test_sync_containers_metada_changed(self):
|
|
||||||
get_called = []
|
|
||||||
post_called = []
|
|
||||||
|
|
||||||
def get_container(*args, **kwargs):
|
|
||||||
if len(get_called) == 0:
|
|
||||||
get_called.append("TESTED")
|
|
||||||
return ({
|
|
||||||
'x-container-meta-psg': 'magic',
|
|
||||||
'x-trans-id': 'ffs',
|
|
||||||
'x-container-bytes-used': '100',
|
|
||||||
'x-container-object-count': '2'},
|
|
||||||
[{'last_modified': '2010', 'name': 'foo'}])
|
|
||||||
else:
|
|
||||||
get_called.append("TESTED2")
|
|
||||||
return ({
|
|
||||||
'x-container-meta-psg': 'marseille',
|
|
||||||
'x-trans-id': 'ffs',
|
|
||||||
'x-container-bytes-used': '200',
|
|
||||||
'x-container-object-count': '2'},
|
|
||||||
[{'last_modified': '2010', 'name': 'foo'}])
|
|
||||||
self.stubs.Set(swiftclient, 'get_container', get_container)
|
|
||||||
|
|
||||||
self.stubs.Set(swiftclient, 'get_container', get_container)
|
|
||||||
|
|
||||||
def post_container(url, token, container, headers, **kwargs):
|
|
||||||
post_called.append(headers)
|
|
||||||
self.stubs.Set(swiftclient, 'post_container', post_container)
|
|
||||||
|
|
||||||
def head_container(*args, **kwargs):
|
|
||||||
pass
|
|
||||||
self.stubs.Set(swiftclient, 'head_container', head_container)
|
|
||||||
|
|
||||||
self.container_cls.sync(
|
|
||||||
self.orig_storage_cnx,
|
|
||||||
self.orig_storage_url,
|
|
||||||
'token',
|
|
||||||
self.dest_storage_cnx,
|
|
||||||
self.dest_storage_url,
|
|
||||||
'token',
|
|
||||||
'cont1')
|
|
||||||
|
|
||||||
self.assertEqual(len(get_called), 2)
|
|
||||||
self.assertEqual(len(post_called), 1)
|
|
||||||
self.assertEquals(post_called[0]['x-container-meta-psg'], 'magic')
|
|
||||||
|
|
||||||
def test_sync_containers_raise_client(self):
|
|
||||||
get_called = []
|
|
||||||
post_called = []
|
|
||||||
called_info = []
|
|
||||||
|
|
||||||
def fake_info(msg):
|
|
||||||
called_info.append(msg)
|
|
||||||
self.stubs.Set(logging, 'info', fake_info)
|
|
||||||
|
|
||||||
def get_container(*args, **kwargs):
|
|
||||||
if len(get_called) == 0:
|
|
||||||
get_called.append("TESTED")
|
|
||||||
return ({
|
|
||||||
'x-container-meta-psg': 'magic',
|
|
||||||
'x-trans-id': 'ffs',
|
|
||||||
'x-container-bytes-used': '100',
|
|
||||||
'x-container-object-count': '2'},
|
|
||||||
[{'last_modified': '2010', 'name': 'foo'}])
|
|
||||||
else:
|
|
||||||
get_called.append("TESTED2")
|
|
||||||
return ({
|
|
||||||
'x-container-meta-psg': 'marseille',
|
|
||||||
'x-trans-id': 'ffs',
|
|
||||||
'x-container-bytes-used': '200',
|
|
||||||
'x-container-object-count': '2'},
|
|
||||||
[{'last_modified': '2010', 'name': 'foo'}])
|
|
||||||
self.stubs.Set(swiftclient, 'get_container', get_container)
|
|
||||||
|
|
||||||
self.stubs.Set(swiftclient, 'get_container', get_container)
|
|
||||||
|
|
||||||
def post_container(url, token, container, headers, **kwargs):
|
|
||||||
post_called.append(headers)
|
|
||||||
raise swiftclient.client.ClientException("TEST")
|
|
||||||
self.stubs.Set(swiftclient, 'post_container', post_container)
|
|
||||||
|
|
||||||
def head_container(*args, **kwargs):
|
|
||||||
pass
|
|
||||||
self.stubs.Set(swiftclient, 'head_container', head_container)
|
|
||||||
|
|
||||||
self.container_cls.sync(
|
|
||||||
self.orig_storage_cnx,
|
|
||||||
self.orig_storage_url,
|
|
||||||
'token',
|
|
||||||
self.dest_storage_cnx,
|
|
||||||
self.dest_storage_url,
|
|
||||||
'token',
|
|
||||||
'cont1')
|
|
||||||
|
|
||||||
self.assertIn('ERROR: updating container metadata: cont1, ',
|
|
||||||
called_info)
|
|
||||||
|
|||||||
Reference in New Issue
Block a user