summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2015-03-10 21:01:04 +0000
committerGerrit Code Review <review@openstack.org>2015-03-10 21:01:04 +0000
commit8437e47288816219ace14235ac04d011b1d782fa (patch)
treee29b437ce818951d4f79de13a6fdeb8a8432fddf
parentf48efbdf5302c59b401f64ca5c46665a3093bb6a (diff)
parent7440d26e93085aa6b724c08e9a3b38afa797a4b3 (diff)
downloadpython-barbicanclient-8437e47288816219ace14235ac04d011b1d782fa.tar.gz
Merge "Fix delete a secret that does not exist"
-rw-r--r--barbicanclient/secrets.py1
-rw-r--r--functionaltests/client/v1/functional/test_secrets.py28
2 files changed, 29 insertions, 0 deletions
diff --git a/barbicanclient/secrets.py b/barbicanclient/secrets.py
index 10ce54e..1c1e83b 100644
--- a/barbicanclient/secrets.py
+++ b/barbicanclient/secrets.py
@@ -377,6 +377,7 @@ class SecretManager(base.BaseEntityManager):
:param secret_ref: The href for the secret to be deleted
"""
+ base.validate_ref(secret_ref, 'Secret')
if not secret_ref:
raise ValueError('secret_ref is required.')
self._api._delete(secret_ref)
diff --git a/functionaltests/client/v1/functional/test_secrets.py b/functionaltests/client/v1/functional/test_secrets.py
index 4a32d54..295beab 100644
--- a/functionaltests/client/v1/functional/test_secrets.py
+++ b/functionaltests/client/v1/functional/test_secrets.py
@@ -113,6 +113,34 @@ class SecretsTestCase(base.TestCase):
get_resp = self.behaviors.get_secret(secret_ref)
self.assertEqual(get_resp.mode, test_model.mode)
+ @testcase.attr('negative')
+ def test_secret_delete_doesnt_exist(self):
+ """Deletes a non-existent secret.
+
+ This delete uses a reference with an invalid UUID format
+ """
+ url = self.barbicanclient.secrets._api._base_url + '/secrets/notauuid'
+
+ e = self.assertRaises(ValueError, self.behaviors.delete_secret,
+ url)
+
+ self.assertEqual(e.message, 'Secret incorrectly specified.')
+
+ @testcase.attr('negative')
+ def test_secret_delete_doesnt_exist_valid_uuid_format(self):
+ """Deletes a non-existent secret.
+
+ This delete has a valid UUID format but there is no secret
+ associated with this UUID
+ """
+ uuid = 'de20ad54-85b4-421b-adb2-eb7b9e546013'
+ url = self.barbicanclient.secrets._api._base_url + '/secrets/' + uuid
+
+ e = self.assertRaises(Exception, self.behaviors.delete_secret,
+ url)
+
+ self.assertEqual(e.http_status, 404)
+
@utils.parameterized_dataset({
'alphanumeric': ['1f34ds'],
'punctuation': ['~!@#$%^&*()_+`-={}[]|:;<>,.?'],