diff options
author | Jenkins <jenkins@review.openstack.org> | 2015-03-11 11:48:10 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2015-03-11 11:48:10 +0000 |
commit | 96668c30610e944b99b34d9ada20515f24a87bef (patch) | |
tree | 7496619a618abbdf6a8c049d17b108a9dfa2fe1d | |
parent | 8437e47288816219ace14235ac04d011b1d782fa (diff) | |
parent | 92b53a749d6d363b51271a796d24d6f9642d1b91 (diff) | |
download | python-barbicanclient-96668c30610e944b99b34d9ada20515f24a87bef.tar.gz |
Merge "Fix when submitting with empty string, none and zero"
-rw-r--r-- | barbicanclient/secrets.py | 2 | ||||
-rw-r--r-- | functionaltests/client/v1/functional/test_secrets.py | 41 |
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}, |