diff options
author | Jenkins <jenkins@review.openstack.org> | 2015-03-10 21:01:04 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2015-03-10 21:01:04 +0000 |
commit | 8437e47288816219ace14235ac04d011b1d782fa (patch) | |
tree | e29b437ce818951d4f79de13a6fdeb8a8432fddf | |
parent | f48efbdf5302c59b401f64ca5c46665a3093bb6a (diff) | |
parent | 7440d26e93085aa6b724c08e9a3b38afa797a4b3 (diff) | |
download | python-barbicanclient-8437e47288816219ace14235ac04d011b1d782fa.tar.gz |
Merge "Fix delete a secret that does not exist"
-rw-r--r-- | barbicanclient/secrets.py | 1 | ||||
-rw-r--r-- | functionaltests/client/v1/functional/test_secrets.py | 28 |
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': ['~!@#$%^&*()_+`-={}[]|:;<>,.?'], |