Accept 'pass_phrase' for AsymmetricOrder constructor

This was changed by this commit
Iecd129a61eb02d0de59b4a11b83200a8a4269a6c and broke other projects that
used this interface. This adds the parameter back, as well as still
accepting the one that was introduced ('passphrase' without the
underscore).

Also, the new parameter takes presedence.

Change-Id: I12796f6896bba315b9cd855a13f776b08e0be693
Closes-Bug: #1635213
This commit is contained in:
Juan Antonio Osorio Robles
2016-12-12 15:37:50 +02:00
parent 63906456f6
commit 8777884858
2 changed files with 38 additions and 1 deletions

View File

@@ -298,7 +298,7 @@ class AsymmetricOrder(Order, AsymmetricOrderFormatter):
_type = 'asymmetric'
def __init__(self, api, name=None, algorithm=None, bit_length=None,
mode=None, passphrase=None, expiration=None,
mode=None, passphrase=None, pass_phrase=None, expiration=None,
payload_content_type=None, status=None, created=None,
updated=None, order_ref=None, container_ref=None,
error_status_code=None, error_reason=None, sub_status=None,
@@ -315,6 +315,10 @@ class AsymmetricOrder(Order, AsymmetricOrderFormatter):
self._container_ref = container_ref
if passphrase:
self._meta['pass_phrase'] = passphrase
elif pass_phrase:
# NOTE(jaosorior): Needed for backwards compatibility.
# See bug #1635213
self._meta['pass_phrase'] = pass_phrase
@property
def container_ref(self):

View File

@@ -17,6 +17,7 @@ import json
import mock
from oslo_utils import timeutils
import testtools
import uuid
from barbicanclient import orders, base
from barbicanclient.tests import test_client
@@ -210,6 +211,38 @@ class WhenTestingAsymmetricOrders(OrdersTestCase):
except base.ImmutableException:
pass
def test_create_asymmetric_order_w_passphrase(self):
data = {'order_ref': self.entity_href}
self.responses.post(self.entity_base + '/', json=data)
passphrase = str(uuid.uuid4())
order = orders.AsymmetricOrder(
api=self.manager._api,
name='name',
algorithm='algorithm',
payload_content_type='payload_content_type',
passphrase=passphrase,
)
order_href = order.submit()
self.assertEqual(self.entity_href, order_href)
self.assertEqual(passphrase, order.pass_phrase)
def test_create_asymmetric_order_w_legacy_pass_phrase_param(self):
data = {'order_ref': self.entity_href}
self.responses.post(self.entity_base + '/', json=data)
passphrase = str(uuid.uuid4())
order = orders.AsymmetricOrder(
api=self.manager._api,
name='name',
algorithm='algorithm',
payload_content_type='payload_content_type',
pass_phrase=passphrase,
)
order_href = order.submit()
self.assertEqual(self.entity_href, order_href)
self.assertEqual(passphrase, order.pass_phrase)
class WhenTestingOrderManager(OrdersTestCase):