Add more tests for containers.

This commit is contained in:
Chmouel Boudjnah
2013-04-10 13:12:52 +02:00
parent b296aece82
commit d16fbf8463
2 changed files with 120 additions and 0 deletions

View File

@@ -68,6 +68,7 @@ class Containers(object):
orig_token, dest_storage_cnx, dest_storage_url, dest_token,
container_name):
# Is this needed to be done before the head?
try:
orig_container_stats, orig_objects = swiftclient.get_container(
None, orig_token, container_name, http_conn=orig_storage_cnx,
@@ -76,6 +77,7 @@ class Containers(object):
logging.info("ERROR: getting container: %s, %s" % (
container_name, e.http_reason))
return
try:
swiftclient.head_container(
"", dest_token, container_name, http_conn=dest_storage_cnx

View File

@@ -14,6 +14,7 @@
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
import logging
import urlparse
import swiftclient
@@ -65,6 +66,38 @@ class TestContainers(test_base.TestCase):
)
self.assertEqual(len(get_cnt_called), 1)
def test_sync_when_container_nothere_raise_when_cant_create(self):
put_cnt_called = []
called_info = []
def fake_info(self, *args):
called_info.append("called")
self.stubs.Set(logging, 'info', fake_info)
def put_container(*args, **kwargs):
put_cnt_called.append("TESTED")
raise swiftclient.client.ClientException('TESTED')
def get_container(_, token, name, **kwargS):
for clist in fakes.CONTAINERS_LIST:
if clist[0]['name'] == name:
return (fakes.CONTAINER_HEADERS, clist[1])
def head_container(*args, **kwargs):
raise swiftclient.client.ClientException('Not Here')
self.stubs.Set(swiftclient, 'get_container', get_container)
self.stubs.Set(swiftclient, 'put_container', put_container)
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(put_cnt_called), 1)
self.assertEqual(len(called_info), 1)
def test_delete_dest(self):
# probably need to change that to mox properly
get_cnt_called = []
@@ -152,3 +185,88 @@ class TestContainers(test_base.TestCase):
'cont1')
self.assertEqual(sync_object_called[0][-1][1], 'NEWOBJ')
def test_sync_raise_exceptions_get_container_on_orig(self):
called = []
def get_container(*args, **kwargs):
called.append("TESTED")
raise swiftclient.client.ClientException("TESTED")
self.stubs.Set(swiftclient, 'get_container', get_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(called), 1)
def test_sync_raise_exceptions_get_container_on_dest(self):
called = []
called_on_dest = []
def get_container(*args, **kwargs):
#ORIG
if len(called) == 0:
called.append("TESTED")
return ({}, [{'name': 'PARISESTMAGIQUE',
'last_modified': '2010'}])
#DEST
else:
called_on_dest.append("TESTED")
raise swiftclient.client.ClientException("TESTED")
def head_container(*args, **kwargs):
pass
self.stubs.Set(swiftclient, 'head_container', head_container)
self.stubs.Set(swiftclient, 'get_container', get_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(called_on_dest), 1)
self.assertEqual(len(called), 1)
def test_delete_container(self):
delete_called = []
orig_containers = [{'name': 'foo'}]
dest_containers = [{'name': 'foo'}, {'name': 'bar'}]
def get_container(*args, **kwargs):
return ({}, [{'name': 'PARISESTMAGIQUE', 'last_modified': '2010'}])
def delete(*args, **kwargs):
delete_called.append("TESTED")
self.container_cls.delete_object = delete
self.stubs.Set(swiftclient, 'delete_container', delete)
self.stubs.Set(swiftclient, 'get_container', get_container)
self.container_cls.delete_container(
"cnx1", "token1", orig_containers, dest_containers)
self.assertEqual(len(delete_called), 2)
def test_delete_container_raise_exception(self):
called = []
orig_containers = [{'name': 'foo'}]
dest_containers = [{'name': 'foo'}, {'name': 'bar'}]
def get_container(*args, **kwargs):
called.append("TESTED")
raise swiftclient.client.ClientException("TESTED")
self.stubs.Set(swiftclient, 'get_container', get_container)
self.container_cls.delete_container(
"cnx1", "token1", orig_containers, dest_containers)
self.assertEqual(len(called), 1)