summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2015-03-11 11:48:10 +0000
committerGerrit Code Review <review@openstack.org>2015-03-11 11:48:10 +0000
commit96668c30610e944b99b34d9ada20515f24a87bef (patch)
tree7496619a618abbdf6a8c049d17b108a9dfa2fe1d
parent8437e47288816219ace14235ac04d011b1d782fa (diff)
parent92b53a749d6d363b51271a796d24d6f9642d1b91 (diff)
downloadpython-barbicanclient-96668c30610e944b99b34d9ada20515f24a87bef.tar.gz
Merge "Fix when submitting with empty string, none and zero"
-rw-r--r--barbicanclient/secrets.py2
-rw-r--r--functionaltests/client/v1/functional/test_secrets.py41
2 files changed, 42 insertions, 1 deletions
diff --git a/barbicanclient/secrets.py b/barbicanclient/secrets.py
index 1c1e83b..4615968 100644
--- a/barbicanclient/secrets.py
+++ b/barbicanclient/secrets.py
@@ -172,7 +172,7 @@ class Secret(SecretFormatter):
"""
Lazy-loaded property that holds the unencrypted data
"""
- if not self._payload:
+ if self._payload is None:
self._fetch_payload()
return self._payload
diff --git a/functionaltests/client/v1/functional/test_secrets.py b/functionaltests/client/v1/functional/test_secrets.py
index 295beab..b69f600 100644
--- a/functionaltests/client/v1/functional/test_secrets.py
+++ b/functionaltests/client/v1/functional/test_secrets.py
@@ -273,6 +273,47 @@ class SecretsTestCase(base.TestCase):
str(base64.b64encode(get_resp.payload)))
@utils.parameterized_dataset({
+ 'array': [['boom']],
+ 'int': [123],
+ 'zero': [0]
+ })
+ @testcase.attr('negative')
+ def test_secret_create_defaults_invalid_payload_http_err(self, payload):
+ """Covers creating secrets with various invalid payloads.
+
+ These requests will error with 400 and are will make a request to
+ the server.
+ """
+ test_model = self.behaviors.create_secret(
+ secret_create_defaults_data)
+ test_model.payload = payload
+
+ e = self.assertRaises(Exception, self.behaviors.store_secret,
+ test_model)
+
+ self.assertEqual(e.http_status, 400)
+
+ @utils.parameterized_dataset({
+ 'empty': [''],
+ 'none': [None],
+ })
+ @testcase.attr('negative')
+ def test_secret_create_defaults_invalid_payload(self, payload):
+ """Covers creating secrets with various invalid payloads.
+
+ These requests will fail with a value error before the request to the
+ server is made"""
+ test_model = self.behaviors.create_secret(
+ secret_create_defaults_data)
+ test_model.payload = payload
+
+ e = self.assertRaises(ValueError, self.behaviors.store_secret,
+ test_model)
+
+ self.assertIn('Payload incorrectly specified.',
+ e.message)
+
+ @utils.parameterized_dataset({
'negative_five_long_expire': {
'timezone': '-05:00',
'days': 5},