summaryrefslogtreecommitdiff
path: root/barbicanclient
diff options
context:
space:
mode:
authorJeremy Liu <liujiong@gohighsec.com>2017-02-09 17:29:57 +0800
committerJeremy Liu <liujiong@gohighsec.com>2017-02-25 13:27:45 +0800
commit2d745ee892a80928373bd8a6ea844e8e212a4a15 (patch)
tree986c53948bc80cddf9fced3ea03d213f868de2b6 /barbicanclient
parentd0b20870ef0ca7cbb646ab3f05fcb112d8507eff (diff)
downloadpython-barbicanclient-2d745ee892a80928373bd8a6ea844e8e212a4a15.tar.gz
Fix serializable issues when retrieving json format resources
Change-Id: Icc56feab767e5154588f2e3e32e1ded3d8c62f09 Closes-Bug: #1662144
Diffstat (limited to 'barbicanclient')
-rw-r--r--barbicanclient/acls.py6
-rw-r--r--barbicanclient/cas.py9
-rw-r--r--barbicanclient/containers.py3
-rw-r--r--barbicanclient/orders.py9
-rw-r--r--barbicanclient/secrets.py6
-rw-r--r--barbicanclient/tests/test_acls.py2
-rw-r--r--barbicanclient/tests/test_cas.py13
-rw-r--r--barbicanclient/tests/test_containers.py13
-rw-r--r--barbicanclient/tests/test_orders.py22
-rw-r--r--barbicanclient/tests/test_secrets.py9
10 files changed, 80 insertions, 12 deletions
diff --git a/barbicanclient/acls.py b/barbicanclient/acls.py
index cec8378..a7393e0 100644
--- a/barbicanclient/acls.py
+++ b/barbicanclient/acls.py
@@ -38,11 +38,13 @@ class ACLFormatter(formatter.EntityFormatter):
)
def _get_formatted_data(self):
+ created = self.created.isoformat() if self.created else None
+ updated = self.updated.isoformat() if self.updated else None
data = (self.operation_type,
self.project_access,
self.users,
- self.created,
- self.updated,
+ created,
+ updated,
self.acl_ref,
)
return data
diff --git a/barbicanclient/cas.py b/barbicanclient/cas.py
index 5fa3288..71d6478 100644
--- a/barbicanclient/cas.py
+++ b/barbicanclient/cas.py
@@ -47,15 +47,18 @@ class CAFormatter(formatter.EntityFormatter):
)
def _get_formatted_data(self):
+ created = self.created.isoformat() if self.created else None
+ updated = self.updated.isoformat() if self.updated else None
+ expiration = self.expiration.isoformat() if self.expiration else None
data = (self.ca_ref,
self.name,
self.description,
- self.created,
- self.updated,
+ created,
+ updated,
self.status,
self.plugin_name,
self.plugin_ca_id,
- self.expiration
+ expiration
)
return data
diff --git a/barbicanclient/containers.py b/barbicanclient/containers.py
index 3bf8789..7437261 100644
--- a/barbicanclient/containers.py
+++ b/barbicanclient/containers.py
@@ -58,9 +58,10 @@ class ContainerFormatter(formatter.EntityFormatter):
))
if self.consumers:
formatted_consumers = '\n'.join((str(c) for c in self.consumers))
+ created = self.created.isoformat() if self.created else None
data = (self.container_ref,
self.name,
- self.created,
+ created,
self.status,
self._type,
formatted_secrets,
diff --git a/barbicanclient/orders.py b/barbicanclient/orders.py
index a087b3b..be48ba0 100644
--- a/barbicanclient/orders.py
+++ b/barbicanclient/orders.py
@@ -48,11 +48,12 @@ class KeyOrderFormatter(formatter.EntityFormatter):
)
def _get_formatted_data(self):
+ created = self.created.isoformat() if self.created else None
data = (self.order_ref,
"Key",
"N/A",
self.secret_ref,
- self.created,
+ created,
self.status,
self.error_status_code,
self.error_reason
@@ -73,11 +74,12 @@ class AsymmetricOrderFormatter(formatter.EntityFormatter):
)
def _get_formatted_data(self):
+ created = self.created.isoformat() if self.created else None
data = (self.order_ref,
"Asymmetric",
self.container_ref,
"N/A",
- self.created,
+ created,
self.status,
self.error_status_code,
self.error_reason
@@ -98,11 +100,12 @@ class CertificateOrderFormatter(formatter.EntityFormatter):
)
def _get_formatted_data(self):
+ created = self.created.isoformat() if self.created else None
data = (self.order_ref,
"Certificate",
self.container_ref,
"N/A",
- self.created,
+ created,
self.status,
self.error_status_code,
self.error_reason
diff --git a/barbicanclient/secrets.py b/barbicanclient/secrets.py
index 220d7f3..5d53720 100644
--- a/barbicanclient/secrets.py
+++ b/barbicanclient/secrets.py
@@ -61,16 +61,18 @@ class SecretFormatter(formatter.EntityFormatter):
)
def _get_formatted_data(self):
+ created = self.created.isoformat() if self.created else None
+ expiration = self.expiration.isoformat() if self.expiration else None
data = (self.secret_ref,
self.name,
- self.created,
+ created,
self.status,
self.content_types,
self.algorithm,
self.bit_length,
self.secret_type,
self.mode,
- self.expiration,
+ expiration,
)
return data
diff --git a/barbicanclient/tests/test_acls.py b/barbicanclient/tests/test_acls.py
index f3a468e..21b4394 100644
--- a/barbicanclient/tests/test_acls.py
+++ b/barbicanclient/tests/test_acls.py
@@ -363,7 +363,7 @@ class WhenTestingACLEntity(ACLTestCase):
self.assertEqual(acls.DEFAULT_OPERATION_TYPE, data[0])
self.assertIsNone(data[1])
self.assertEqual(self.users2, data[2])
- self.assertEqual(timeutils.parse_isotime(self.created),
+ self.assertEqual(timeutils.parse_isotime(self.created).isoformat(),
data[3]) # created
self.assertIsNone(data[4]) # updated
self.assertEqual(self.container_acl_ref, data[5])
diff --git a/barbicanclient/tests/test_cas.py b/barbicanclient/tests/test_cas.py
index 1a4961e..86ac118 100644
--- a/barbicanclient/tests/test_cas.py
+++ b/barbicanclient/tests/test_cas.py
@@ -131,3 +131,16 @@ class WhenTestingCAs(test_client.BaseEntityResource):
# Verify the correct URL was used to make the GET call
self.assertEqual(self.entity_href, m.last_request.url)
+
+ def test_get_formatted_data(self):
+ c_entity = cas.CA(api=None,
+ expiration=self.ca.expiration,
+ plugin_name=self.ca.plugin_name,
+ created=self.ca.created)
+
+ data = c_entity._get_formatted_data()
+
+ self.assertEqual(self.ca.plugin_name, data[6])
+ self.assertEqual(timeutils.parse_isotime(
+ self.ca.expiration).isoformat(),
+ data[8])
diff --git a/barbicanclient/tests/test_containers.py b/barbicanclient/tests/test_containers.py
index 4be9fb9..6441c23 100644
--- a/barbicanclient/tests/test_containers.py
+++ b/barbicanclient/tests/test_containers.py
@@ -565,3 +565,16 @@ class WhenTestingContainers(test_client.BaseEntityResource):
# Verify the correct URL was used to make the GET call
self.assertEqual(acl_ref, n.last_request.url)
+
+ def test_get_formatted_data(self):
+ data = self.container.get_dict(self.entity_href)
+ self.responses.get(self.entity_href, json=data)
+
+ container = self.manager.get(container_ref=self.entity_href)
+
+ data = container._get_formatted_data()
+
+ self.assertEqual(self.container.name, data[1])
+ self.assertEqual(timeutils.parse_isotime(
+ self.container.created).isoformat(),
+ data[2])
diff --git a/barbicanclient/tests/test_orders.py b/barbicanclient/tests/test_orders.py
index 9c60822..cb45ac3 100644
--- a/barbicanclient/tests/test_orders.py
+++ b/barbicanclient/tests/test_orders.py
@@ -298,6 +298,17 @@ class WhenTestingOrderManager(OrdersTestCase):
self.responses.get(self.entity_base, json={'total': 1})
total = self.manager.total()
+ def test_get_formatted_data(self):
+ self.responses.get(self.entity_href, text=self.key_order_data)
+
+ order = self.manager.get(order_ref=self.entity_href)
+ data = order._get_formatted_data()
+
+ order_args = self._get_order_args(self.key_order_data)
+ self.assertEqual(timeutils.parse_isotime(
+ order_args['created']).isoformat(),
+ data[4])
+
class WhenTestingCertificateOrders(test_client.BaseEntityResource):
def setUp(self):
@@ -383,3 +394,14 @@ class WhenTestingCertificateOrders(test_client.BaseEntityResource):
self.assertEqual(3, len(orders_list))
self.assertIsInstance(orders_list[0], orders.CertificateOrder)
self.assertEqual(self.entity_href, orders_list[0].order_ref)
+
+ def test_get_formatted_data(self):
+ self.responses.get(self.entity_href, text=self.cert_order_data)
+
+ order = self.manager.get(order_ref=self.entity_href)
+ data = order._get_formatted_data()
+
+ order_args = self._get_order_args(self.cert_order_data)
+ self.assertEqual(timeutils.parse_isotime(
+ order_args['created']).isoformat(),
+ data[4])
diff --git a/barbicanclient/tests/test_secrets.py b/barbicanclient/tests/test_secrets.py
index 9be1be7..61efdb0 100644
--- a/barbicanclient/tests/test_secrets.py
+++ b/barbicanclient/tests/test_secrets.py
@@ -488,3 +488,12 @@ class WhenTestingSecrets(test_client.BaseEntityResource):
self.responses.get(self.entity_base, json={'total': 1})
total = self.manager.total()
self.assertEqual(1, total)
+
+ def test_get_formatted_data(self):
+ data = self.secret.get_dict(self.entity_href)
+ m = self.responses.get(self.entity_href, json=data)
+
+ secret = self.manager.get(secret_ref=self.entity_href)
+ f_data = secret._get_formatted_data()
+ self.assertEqual(timeutils.parse_isotime(data['created']).isoformat(),
+ f_data[2])