from __future__ import print_function
from ceph_volume_client import CephFSVolumeClient, VolumePath
from sys import version_info as sys_version_info
+from rados import OSError as rados_OSError
import logging
log = logging.getLogger("ceph_volume_client")
log.addHandler(logging.StreamHandler())
# Test if put_object_versioned() crosschecks the version of the
# given object. Being a negative test, an exception is expected.
- with self.assertRaises(CommandFailedError):
- self._volume_client_python(vc_mount, dedent("""
- data, version = vc.get_object_and_version("{pool_name}", "{obj_name}")
+ expected_exception = 'rados_OSError'
+ output = self._volume_client_python(vc_mount, dedent("""
+ data, version = vc.get_object_and_version("{pool_name}", "{obj_name}")
- if sys_version_info.major < 3:
- data = data + 'm1'
- elif sys_version_info.major > 3:
- data = str.encode(data.decode('utf-8') + 'm1')
+ if sys_version_info.major < 3:
+ data = data + 'm1'
+ elif sys_version_info.major > 3:
+ data = str.encode(data.decode('utf-8') + 'm1')
- vc.put_object("{pool_name}", "{obj_name}", data)
+ vc.put_object("{pool_name}", "{obj_name}", data)
- if sys_version_info.major < 3:
- data = data + 'm2'
- elif sys_version_info.major > 3:
- data = str.encode(data.decode('utf-8') + 'm2')
+ if sys_version_info.major < 3:
+ data = data + 'm2'
+ elif sys_version_info.major > 3:
+ data = str.encode(data.decode('utf-8') + 'm2')
+ try:
vc.put_object_versioned("{pool_name}", "{obj_name}", data, version)
- """).format(pool_name=pool_name, obj_name=obj_name))
+ except {expected_exception}:
+ print('{expected_exception} raised')
+ """).format(pool_name=pool_name, obj_name=obj_name,
+ expected_exception=expected_exception))
+ self.assertEqual(expected_exception + ' raised', output)
+
def test_delete_object(self):
vc_mount = self.mounts[1]