diff options
author | John Vrbanac <john.vrbanac@rackspace.com> | 2015-04-08 17:17:32 -0500 |
---|---|---|
committer | John Vrbanac <john.vrbanac@rackspace.com> | 2015-04-15 14:20:56 -0500 |
commit | e06df05a69755f2231bc6fb1811a5bcfacd1b6ed (patch) | |
tree | bd683fdb9a766104abeed45617c1f077db9a9187 /functionaltests | |
parent | 5ed2e70f9f38e46c5af36d1e9c4eb4e24568bc5a (diff) | |
download | python-barbicanclient-e06df05a69755f2231bc6fb1811a5bcfacd1b6ed.tar.gz |
Raising errors from the client instead of ksclient
Consolidates HTTPError types into barbicanclient.exceptions.
Provides a uniform way of external consumers to catch
common exceptions that might occur as a result of normal
client operation.
Fixes bug 1431514
Change-Id: Id65e7da913bb06e2f94a50f44550199dc7f1beb6
Diffstat (limited to 'functionaltests')
-rw-r--r-- | functionaltests/client/v1/functional/test_containers.py | 47 | ||||
-rw-r--r-- | functionaltests/client/v1/functional/test_orders.py | 93 | ||||
-rw-r--r-- | functionaltests/client/v1/functional/test_secrets.py | 81 |
3 files changed, 148 insertions, 73 deletions
diff --git a/functionaltests/client/v1/functional/test_containers.py b/functionaltests/client/v1/functional/test_containers.py index 1b474b7..2c7c284 100644 --- a/functionaltests/client/v1/functional/test_containers.py +++ b/functionaltests/client/v1/functional/test_containers.py @@ -18,6 +18,8 @@ from functionaltests.client import base from functionaltests.client.v1.behaviors import container_behaviors from functionaltests.client.v1.behaviors import secret_behaviors +from barbicanclient import exceptions + create_secret_defaults_data = { "name": "AES key", @@ -123,10 +125,13 @@ class GenericContainersTestCase(BaseContainersTestCase): test_model = self.behaviors.create_generic_container( create_container_defaults_data, secrets=secrets) - e = self.assertRaises(Exception, self.behaviors.store_container, - test_model) + e = self.assertRaises( + exceptions.HTTPClientError, + self.behaviors.store_container, + test_model + ) - self.assertEqual(e.http_status, 400) + self.assertEqual(e.status_code, 400) @testcase.attr('negative') def test_get_non_existent_container(self): @@ -152,10 +157,13 @@ class GenericContainersTestCase(BaseContainersTestCase): uuid = 'de305d54-75b4-431b-cccc-eb6b9e546013' url = base_url + '/containers/' + uuid - e = self.assertRaises(Exception, self.behaviors.get_container, - url) + e = self.assertRaises( + exceptions.HTTPClientError, + self.behaviors.get_container, + url + ) - self.assertEqual(e.http_status, 404) + self.assertEqual(e.status_code, 404) @testcase.attr('negative') def test_delete_non_existent_container(self): @@ -181,10 +189,13 @@ class GenericContainersTestCase(BaseContainersTestCase): base_url = self.barbicanclient.secrets._api._base_url url = base_url + '/containers/' + uuid - e = self.assertRaises(Exception, self.behaviors.get_container, - url) + e = self.assertRaises( + exceptions.HTTPClientError, + self.behaviors.get_container, + url + ) - self.assertEqual(e.http_status, 404) + self.assertEqual(e.status_code, 404) @utils.parameterized_dataset({'0': [0], '1': [1], '50': [50]}) @testcase.attr('positive') @@ -290,10 +301,13 @@ class RSAContainersTestCase(BaseContainersTestCase): test_model = self.behaviors.create_rsa_container( no_public_key_rsa_container) - e = self.assertRaises(Exception, self.behaviors.store_container, - test_model) + e = self.assertRaises( + exceptions.HTTPClientError, + self.behaviors.store_container, + test_model + ) - self.assertEqual(e.http_status, 400) + self.assertEqual(e.status_code, 400) @testcase.attr('negative') def test_create_rsa_no_private_key(self): @@ -309,7 +323,10 @@ class RSAContainersTestCase(BaseContainersTestCase): test_model = self.behaviors.create_rsa_container( no_private_key_rsa_container) - e = self.assertRaises(Exception, self.behaviors.store_container, - test_model) + e = self.assertRaises( + exceptions.HTTPClientError, + self.behaviors.store_container, + test_model + ) - self.assertEqual(e.http_status, 400) + self.assertEqual(e.status_code, 400) diff --git a/functionaltests/client/v1/functional/test_orders.py b/functionaltests/client/v1/functional/test_orders.py index a0bfb2d..41b0b64 100644 --- a/functionaltests/client/v1/functional/test_orders.py +++ b/functionaltests/client/v1/functional/test_orders.py @@ -22,6 +22,8 @@ from functionaltests.client.v1.behaviors import order_behaviors from functionaltests.client.v1.behaviors import secret_behaviors from oslo_utils import timeutils +from barbicanclient import exceptions + order_create_key_data = { "name": "barbican functional test secret name", "algorithm": "aes", @@ -176,10 +178,14 @@ class OrdersTestCase(base.TestCase): ref = self.behaviors.base_url + '/orders/' + uuid # try to get a non-existent order - e = self.assertRaises(Exception, self.behaviors.get_order, ref) + e = self.assertRaises( + exceptions.HTTPClientError, + self.behaviors.get_order, + ref + ) # verify that the order get failed - self.assertEqual(e.http_status, 404) + self.assertEqual(e.status_code, 404) @testcase.attr('negative') def test_create_order_nones(self): @@ -187,11 +193,13 @@ class OrdersTestCase(base.TestCase): test_model = self.behaviors.create_key_order(order_create_nones_data) - e = self.assertRaises(Exception, self.behaviors.store_order, - test_model) - - self.assertEqual(e.http_status, 400) + e = self.assertRaises( + exceptions.HTTPClientError, + self.behaviors.store_order, + test_model + ) + self.assertEqual(e.status_code, 400) @testcase.attr('negative') def test_create_order_empty_entries(self): @@ -204,11 +212,13 @@ class OrdersTestCase(base.TestCase): test_model.bit_length = "" test_model.payload_content_type = "" - e = self.assertRaises(Exception, self.behaviors.store_order, - test_model) - - self.assertEqual(e.http_status, 400) + e = self.assertRaises( + exceptions.HTTPClientError, + self.behaviors.store_order, + test_model + ) + self.assertEqual(e.status_code, 400) @testcase.attr('negative') def test_create_order_defaults_oversized_strings(self): @@ -219,10 +229,13 @@ class OrdersTestCase(base.TestCase): test_model.algorithm = base.TestCase.oversized_field test_model.mode = base.TestCase.oversized_field - e = self.assertRaises(Exception, self.behaviors.store_order, - test_model) + e = self.assertRaises( + exceptions.HTTPClientError, + self.behaviors.store_order, + test_model + ) - self.assertEqual(e.http_status, 400) + self.assertEqual(e.status_code, 400) @utils.parameterized_dataset({ '8': [8], @@ -265,9 +278,12 @@ class OrdersTestCase(base.TestCase): test_model = self.behaviors.create_key_order(order_create_key_data) test_model.bit_length = bit_length - e = self.assertRaises(Exception, self.behaviors.store_order, - test_model) - self.assertEqual(e.http_status, 400) + e = self.assertRaises( + exceptions.HTTPClientError, + self.behaviors.store_order, + test_model + ) + self.assertEqual(e.status_code, 400) @utils.parameterized_dataset({ 'alphanumeric': ['1f34ds'], @@ -296,10 +312,13 @@ class OrdersTestCase(base.TestCase): test_model = self.behaviors.create_key_order(order_create_key_data) test_model.name = name - e = self.assertRaises(Exception, self.behaviors.store_order, - test_model) + e = self.assertRaises( + exceptions.HTTPClientError, + self.behaviors.store_order, + test_model + ) - self.assertEqual(e.http_status, 400) + self.assertEqual(e.status_code, 400) @utils.parameterized_dataset({ 'cbc': ['cbc'] @@ -325,9 +344,12 @@ class OrdersTestCase(base.TestCase): test_model = self.behaviors.create_key_order(order_create_key_data) test_model.mode = mode - e = self.assertRaises(Exception, self.behaviors.store_order, - test_model) - self.assertEqual(e.http_status, 400) + e = self.assertRaises( + exceptions.HTTPClientError, + self.behaviors.store_order, + test_model + ) + self.assertEqual(e.status_code, 400) @utils.parameterized_dataset({ 'aes': ['aes'] @@ -354,10 +376,13 @@ class OrdersTestCase(base.TestCase): test_model = self.behaviors.create_key_order(order_create_key_data) test_model.algorithm = algorithm - e = self.assertRaises(Exception, self.behaviors.store_order, - test_model) + e = self.assertRaises( + exceptions.HTTPClientError, + self.behaviors.store_order, + test_model + ) - self.assertEqual(e.http_status, 400) + self.assertEqual(e.status_code, 400) # TODO(tdink) Add empty after Launchpad 1420444 is resolved @utils.parameterized_dataset({ @@ -390,10 +415,13 @@ class OrdersTestCase(base.TestCase): test_model = self.behaviors.create_key_order(order_create_key_data) test_model.payload_content_type = pct - e = self.assertRaises(Exception, self.behaviors.store_order, - test_model) + e = self.assertRaises( + exceptions.HTTPClientError, + self.behaviors.store_order, + test_model + ) - self.assertEqual(e.http_status, 400) + self.assertEqual(e.status_code, 400) @utils.parameterized_dataset({ 'negative_five_long_expire': { @@ -442,7 +470,10 @@ class OrdersTestCase(base.TestCase): test_model = self.behaviors.create_key_order(order_create_key_data) test_model.expiration = timestamp - e = self.assertRaises(Exception, self.behaviors.store_order, - test_model) + e = self.assertRaises( + exceptions.HTTPClientError, + self.behaviors.store_order, + test_model + ) - self.assertEqual(e.http_status, 400)
\ No newline at end of file + self.assertEqual(e.status_code, 400) diff --git a/functionaltests/client/v1/functional/test_secrets.py b/functionaltests/client/v1/functional/test_secrets.py index fa9218f..8d0961f 100644 --- a/functionaltests/client/v1/functional/test_secrets.py +++ b/functionaltests/client/v1/functional/test_secrets.py @@ -136,10 +136,13 @@ class SecretsTestCase(base.TestCase): uuid = 'de20ad54-85b4-421b-adb2-eb7b9e546013' url = self.behaviors.base_url + '/secrets/' + uuid - e = self.assertRaises(Exception, self.behaviors.delete_secret, - url) + e = self.assertRaises( + exceptions.HTTPClientError, + self.behaviors.delete_secret, + url + ) - self.assertEqual(e.http_status, 404) + self.assertEqual(e.status_code, 404) @testcase.attr('negative') def test_secret_create_nones_content_type(self): @@ -197,9 +200,12 @@ class SecretsTestCase(base.TestCase): secret_create_defaults_data) test_model.expiration = '2000-01-10T14:58:52.546795' - e = self.assertRaises(Exception, self.behaviors.store_secret, - test_model) - self.assertEqual(e.http_status, 400) + e = self.assertRaises( + exceptions.HTTPClientError, + self.behaviors.store_secret, + test_model + ) + self.assertEqual(e.status_code, 400) @testcase.attr('negative') def test_secret_create_emptystrings(self): @@ -227,9 +233,12 @@ class SecretsTestCase(base.TestCase): secret_create_defaults_data) test_model.payload = str(self.oversized_payload) - e = self.assertRaises(Exception, self.behaviors.store_secret, - test_model) - self.assertEqual(e.http_status, 413) + e = self.assertRaises( + exceptions.HTTPClientError, + self.behaviors.store_secret, + test_model + ) + self.assertEqual(e.status_code, 413) @utils.parameterized_dataset({ 'alphanumeric': ['1f34ds'], @@ -265,10 +274,13 @@ class SecretsTestCase(base.TestCase): secret_create_defaults_data) test_model.name = name - e = self.assertRaises(Exception, self.behaviors.store_secret, - test_model) + e = self.assertRaises( + exceptions.HTTPClientError, + self.behaviors.store_secret, + test_model + ) - self.assertEqual(e.http_status, 400) + self.assertEqual(e.status_code, 400) @utils.parameterized_dataset({ 'aes': ['aes'] @@ -299,10 +311,13 @@ class SecretsTestCase(base.TestCase): # We are currently testing for exception with http_code # launchpad bug 1431514 will address the change to this functionality - e = self.assertRaises(Exception, self.behaviors.store_secret, - test_model) + e = self.assertRaises( + exceptions.HTTPClientError, + self.behaviors.store_secret, + test_model + ) - self.assertEqual(e.http_status, 400) + self.assertEqual(e.status_code, 400) @utils.parameterized_dataset({ '512': [512], @@ -341,10 +356,13 @@ class SecretsTestCase(base.TestCase): secret_create_defaults_data) test_model.bit_length = bit_length - e = self.assertRaises(Exception, self.behaviors.store_secret, - test_model) + e = self.assertRaises( + exceptions.HTTPClientError, + self.behaviors.store_secret, + test_model + ) - self.assertEqual(e.http_status, 400) + self.assertEqual(e.status_code, 400) @utils.parameterized_dataset({ 'cbc': ['cbc'] @@ -374,10 +392,13 @@ class SecretsTestCase(base.TestCase): secret_create_defaults_data) test_model.mode = mode - e = self.assertRaises(Exception, self.behaviors.store_secret, - test_model) + e = self.assertRaises( + exceptions.HTTPClientError, + self.behaviors.store_secret, + test_model + ) - self.assertEqual(e.http_status, 400) + self.assertEqual(e.status_code, 400) @utils.parameterized_dataset({ 'text_content_type_none_encoding': { @@ -491,10 +512,13 @@ class SecretsTestCase(base.TestCase): test_model.payload_content_type = kwargs[ 'payload_content_type'] - e = self.assertRaises(Exception, self.behaviors.store_secret, - test_model) + e = self.assertRaises( + exceptions.HTTPClientError, + self.behaviors.store_secret, + test_model + ) - self.assertEqual(e.http_status, 400) + self.assertEqual(e.status_code, 400) @utils.parameterized_dataset({ 'max_payload_string': [base.TestCase.max_sized_payload] @@ -599,10 +623,13 @@ class SecretsTestCase(base.TestCase): secret_create_defaults_data) test_model.expiration = timestamp - e = self.assertRaises(Exception, self.behaviors.store_secret, - test_model) + e = self.assertRaises( + exceptions.HTTPClientError, + self.behaviors.store_secret, + test_model + ) - self.assertEqual(e.http_status, 400) + self.assertEqual(e.status_code, 400) @utils.parameterized_dataset({ 'alphanumeric': ['1f34ds'], |