diff --git a/openstack/object_store/v1/_proxy.py b/openstack/object_store/v1/_proxy.py index a1571ae1..63c6a521 100644 --- a/openstack/object_store/v1/_proxy.py +++ b/openstack/object_store/v1/_proxy.py @@ -101,18 +101,22 @@ class Proxy(proxy.BaseProxy): container = _container.Container.from_id(container) return container.create(self.session) - def delete_container(self, container): - """Delete a container. + def delete_container(self, value, ignore_missing=True): + """Delete a container - :param container: The container to delete. You can pass a container - object or the name of a container to delete. - :type container: - :class:`~openstack.object_store.v1.container.Container` + :param value: The value can be either the name of a container or a + :class:`~openstack.object_store.v1.container.Container` + instance. + :param bool ignore_missing: When set to ``False`` + :class:`~openstack.exceptions.ResourceNotFound` will be + raised when the container does not exist. + When set to ``True``, no exception will be set when + attempting to delete a nonexistent server. - :rtype: ``None`` + :returns: ``None`` """ - container = _container.Container.from_id(container) - container.delete(self.session) + # TODO(brian): s/_container/container once other changes propogate + self._delete(_container.Container, value, ignore_missing) def objects(self, container, limit=None, marker=None, **kwargs): """Return a generator that yields the Container's objects. @@ -179,15 +183,22 @@ class Proxy(proxy.BaseProxy): """Copy an object.""" raise NotImplementedError - def delete_object(self, obj): - """Delete an object. + def delete_object(self, value, ignore_missing=True): + """Delete an object - :param obj: The object to delete. - :type obj: :class:`~openstack.object_store.v1.obj.Object` + :param value: The value can be either the name of an object or a + :class:`~openstack.object_store.v1.container.Container` + instance. + :param bool ignore_missing: When set to ``False`` + :class:`~openstack.exceptions.ResourceNotFound` will be + raised when the object does not exist. + When set to ``True``, no exception will be set when + attempting to delete a nonexistent server. - :rtype: ``None`` + :returns: ``None`` """ - obj.delete(self.session) + # TODO(brian): s/_obj/obj once other changes propogate + self._delete(_obj.Object, value, ignore_missing) def get_object_metadata(self, obj): """Get metatdata for an object. diff --git a/openstack/tests/unit/object_store/v1/test_proxy.py b/openstack/tests/unit/object_store/v1/test_proxy.py index 82c8137a..19b60ab3 100644 --- a/openstack/tests/unit/object_store/v1/test_proxy.py +++ b/openstack/tests/unit/object_store/v1/test_proxy.py @@ -32,6 +32,20 @@ class TestObjectStoreProxy(test_proxy_base.TestProxyBase): super(TestObjectStoreProxy, self).setUp() self.proxy = _proxy.Proxy(self.session) + def test_container_delete(self): + self.verify_delete2(container.Container, self.proxy.delete_container, + False) + + def test_container_delete_ignore(self): + self.verify_delete2(container.Container, self.proxy.delete_container, + True) + + def test_object_delete(self): + self.verify_delete2(obj.Object, self.proxy.delete_object, False) + + def test_object_delete_ignore(self): + self.verify_delete2(obj.Object, self.proxy.delete_object, True) + class Test_account_metadata(TestObjectStoreProxy): @@ -209,31 +223,6 @@ class Test_create_container(TestObjectStoreProxy): created_container.create.assert_called_once_with(self.session) -class Test_delete_container(TestObjectStoreProxy): - - @mock.patch("openstack.resource.Resource.from_id") - def test_container_object(self, mock_fi): - container = mock.MagicMock() - mock_fi.return_value = container - - result = self.proxy.delete_container(container) - - self.assertIsNone(result) - container.delete.assert_called_once_with(self.session) - - @mock.patch("openstack.resource.Resource.from_id") - def test_container_name(self, mock_fi): - name = six.text_type("my_container") - created_container = mock.MagicMock() - created_container.name = name - mock_fi.return_value = created_container - - result = self.proxy.delete_container(name) - - self.assertIsNone(result) - created_container.delete.assert_called_once_with(self.session) - - class Test_objects(TestObjectStoreProxy, base.TestTransportBase): TEST_URL = fakes.FakeAuthenticator.ENDPOINT @@ -440,17 +429,6 @@ class Test_object_metadata(TestObjectStoreProxy): ob.create.assert_called_once_with(self.session) -class Test_delete_object(TestObjectStoreProxy): - - def test_delete_object(self): - ob = mock.MagicMock() - - result = self.proxy.delete_object(ob) - - self.assertIsNone(result) - ob.delete.assert_called_once_with(self.session) - - class Test_copy_object(TestObjectStoreProxy): def test_copy_object(self):