summaryrefslogtreecommitdiff
path: root/functionaltests
diff options
context:
space:
mode:
authorJohn Vrbanac <john.vrbanac@rackspace.com>2015-04-08 17:17:32 -0500
committerJohn Vrbanac <john.vrbanac@rackspace.com>2015-04-15 14:20:56 -0500
commite06df05a69755f2231bc6fb1811a5bcfacd1b6ed (patch)
treebd683fdb9a766104abeed45617c1f077db9a9187 /functionaltests
parent5ed2e70f9f38e46c5af36d1e9c4eb4e24568bc5a (diff)
downloadpython-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.py47
-rw-r--r--functionaltests/client/v1/functional/test_orders.py93
-rw-r--r--functionaltests/client/v1/functional/test_secrets.py81
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'],