Avoid import internal classes from SDK

This is part of a series of changes related to the usage of SDK. In some
test cases, we are importing the resource classes from SDK directly and
even instantiate them. This is bad for unit tests. We should instead
mock those resources for unit tests. When functional tests are added,
the real resource list/dump will be tested instead.

Change-Id: I1b19c848b7b264a2968546ae8f46e87475d527da
This commit is contained in:
tengqm
2017-02-15 02:46:44 -05:00
parent 4273feb35b
commit f3cead5d1c
3 changed files with 269 additions and 282 deletions

View File

@@ -13,7 +13,6 @@
import copy
import mock
from openstack.cluster.v1 import node as sdk_node
from openstack import exceptions as sdk_exc
from osc_lib import exceptions as exc
import six
@@ -33,30 +32,6 @@ class TestNodeList(TestNode):
columns = ['id', 'name', 'index', 'status', 'cluster_id',
'physical_id', 'profile_name', 'created_at', 'updated_at']
response = {"nodes": [
{
"cluster_id": None,
"created_at": "2015-02-27T04:39:21",
"data": {},
"details": {},
"domain": None,
"id": "573aa1ba-bf45-49fd-907d-6b5d6e6adfd3",
"index": -1,
"init_at": "2015-02-27T04:39:18",
"metadata": {},
"name": "node00a",
"physical_id": "cc028275-d078-4729-bf3e-154b7359814b",
"profile_id": "edc63d0a-2ca4-48fa-9854-27926da76a4a",
"profile_name": "mystack",
"project": "6e18cc2bdbeb48a5b3cad2dc499f6804",
"role": None,
"status": "ACTIVE",
"status_reason": "Creation succeeded",
"updated_at": None,
"user": "5e5bf8027826429c96af157f68dc9072"
}
]}
defaults = {
'cluster_id': None,
'global_project': False,
@@ -68,7 +43,29 @@ class TestNodeList(TestNode):
def setUp(self):
super(TestNodeList, self).setUp()
self.cmd = osc_node.ListNode(self.app, None)
self.mock_client.nodes = mock.Mock(return_value=self.response)
fake_node = mock.Mock(
cluster_id=None,
created_at="2015-02-27T04:39:21",
data={},
details={},
domain=None,
id="573aa1ba-bf45-49fd-907d-6b5d6e6adfd3",
index=-1,
init_at="2015-02-27T04:39:18",
metadata={},
physical_id="cc028275-d078-4729-bf3e-154b7359814b",
profile_id="edc63d0a-2ca4-48fa-9854-27926da76a4a",
profile_name="mystack",
project_id="6e18cc2bdbeb48a5b3cad2dc499f6804",
role=None,
status="ACTIVE",
status_reason="Creation succeeded",
updated_at=None,
user_id="5e5bf8027826429c96af157f68dc9072"
)
fake_node.name = "node00a"
fake_node.to_dict = mock.Mock(return_value={})
self.mock_client.nodes = mock.Mock(return_value=[fake_node])
def test_node_list_defaults(self):
arglist = []
@@ -103,8 +100,6 @@ class TestNodeList(TestNode):
self.assertEqual(self.columns, columns)
def test_node_list_sort_invalid_key(self):
self.mock_client.nodes = mock.Mock(
return_value=self.response)
kwargs = copy.deepcopy(self.defaults)
kwargs['sort'] = 'bad_key'
arglist = ['--sort', 'bad_key']
@@ -114,8 +109,6 @@ class TestNodeList(TestNode):
self.cmd.take_action, parsed_args)
def test_node_list_sort_invalid_direction(self):
self.mock_client.nodes = mock.Mock(
return_value=self.response)
kwargs = copy.deepcopy(self.defaults)
kwargs['sort'] = 'name:bad_direction'
arglist = ['--sort', 'name:bad_direction']
@@ -145,33 +138,36 @@ class TestNodeList(TestNode):
class TestNodeShow(TestNode):
response = {"node": {
"cluster_id": None,
"created_at": "2015-02-10T12:03:16",
"data": {},
"details": {
"OS-DCF:diskConfig": "MANUAL"},
"domain": None,
"id": "d5779bb0-f0a0-49c9-88cc-6f078adb5a0b",
"index": -1,
"init_at": "2015-02-10T12:03:13",
"metadata": {},
"name": "my_node",
"physical_id": "f41537fa-22ab-4bea-94c0-c874e19d0c80",
"profile_id": "edc63d0a-2ca4-48fa-9854-27926da76a4a",
"profile_name": "mystack",
"project": "6e18cc2bdbeb48a5b3cad2dc499f6804",
"role": None,
"status": "ACTIVE",
"status_reason": "Creation succeeded",
"updated_at": "2015-03-04T04:58:27",
"user": "5e5bf8027826429c96af157f68dc9072"
}}
def setUp(self):
super(TestNodeShow, self).setUp()
self.cmd = osc_node.ShowNode(self.app, None)
self.mock_client.get_node = mock.Mock(
return_value=sdk_node.Node(**self.response['node']))
fake_node = mock.Mock(
cluster_id=None,
created_at="2015-02-10T12:03:16",
data={},
details={"OS-DCF:diskConfig": "MANUAL"},
domain_id=None,
id="d5779bb0-f0a0-49c9-88cc-6f078adb5a0b",
index=-1,
init_at="2015-02-10T12:03:13",
metadata={},
physical_id="f41537fa-22ab-4bea-94c0-c874e19d0c80",
profile_id="edc63d0a-2ca4-48fa-9854-27926da76a4a",
profile_name="mystack",
project_id="6e18cc2bdbeb48a5b3cad2dc499f6804",
role=None,
status="ACTIVE",
status_reason="Creation succeeded",
updated_at="2015-03-04T04:58:27",
user_id="5e5bf8027826429c96af157f68dc9072"
)
fake_node.name = "my_node"
fake_node.to_dict = mock.Mock(
return_value={'details': {'key': 'value'}}
)
self.mock_client.get_node = mock.Mock(return_value=fake_node)
def test_node_show(self):
arglist = ['my_node']
@@ -182,7 +178,9 @@ class TestNodeShow(TestNode):
def test_node_show_with_details(self):
arglist = ['my_node', '--details']
parsed_args = self.check_parser(self.cmd, arglist, [])
self.cmd.take_action(parsed_args)
self.mock_client.get_node.assert_called_with(
'my_node', details=True)
@@ -196,27 +194,6 @@ class TestNodeShow(TestNode):
class TestNodeCreate(TestNode):
response = {"node": {
"action": "2366d440-c73e-4961-9254-6d1c3af7c167",
"cluster_id": None,
"created_at": None,
"data": {},
"domain": None,
"id": "0df0931b-e251-4f2e-8719-4ebfda3627ba",
"index": -1,
"init_time": "2015-03-05T08:53:15",
"metadata": {},
"name": "my_node",
"physical_id": "",
"profile_id": "edc63d0a-2ca4-48fa-9854-27926da76a4a",
"profile_name": "mystack",
"project": "6e18cc2bdbeb48a5b3cad2dc499f6804",
"role": "master",
"status": "INIT",
"status_reason": "Initializing",
"updated_at": None,
"user": "5e5bf8027826429c96af157f68dc9072"
}}
defaults = {
"cluster_id": None,
@@ -229,10 +206,31 @@ class TestNodeCreate(TestNode):
def setUp(self):
super(TestNodeCreate, self).setUp()
self.cmd = osc_node.CreateNode(self.app, None)
self.mock_client.create_node = mock.Mock(
return_value=sdk_node.Node(**self.response['node']))
self.mock_client.get_node = mock.Mock(
return_value=sdk_node.Node(**self.response['node']))
fake_node = mock.Mock(
action="2366d440-c73e-4961-9254-6d1c3af7c167",
cluster_id="",
created_at=None,
data={},
domain=None,
id="0df0931b-e251-4f2e-8719-4ebfda3627ba",
index=-1,
init_time="2015-03-05T08:53:15",
metadata={},
physical_id=None,
profile_id="edc63d0a-2ca4-48fa-9854-27926da76a4a",
profile_name="mystack",
project_id="6e18cc2bdbeb48a5b3cad2dc499f6804",
role="master",
status="INIT",
status_reason="Initializing",
updated_at=None,
user_id="5e5bf8027826429c96af157f68dc9072"
)
fake_node.name = "my_node"
fake_node.to_dict = mock.Mock(return_value={})
self.mock_client.create_node = mock.Mock(return_value=fake_node)
self.mock_client.get_node = mock.Mock(return_value=fake_node)
def test_node_create_defaults(self):
arglist = ['my_node', '--profile', 'mystack']
@@ -269,27 +267,6 @@ class TestNodeCreate(TestNode):
class TestNodeUpdate(TestNode):
response = {"node": {
"action": "2366d440-c73e-4961-9254-6d1c3af7c167",
"cluster_id": None,
"created_at": None,
"data": {},
"domain": None,
"id": "0df0931b-e251-4f2e-8719-4ebfda3627ba",
"index": -1,
"init_time": "2015-03-05T08:53:15",
"metadata": {},
"name": "my_node",
"physical_id": "",
"profile_id": "edc63d0a-2ca4-48fa-9854-27926da76a4a",
"profile_name": "mystack",
"project": "6e18cc2bdbeb48a5b3cad2dc499f6804",
"role": "master",
"status": "INIT",
"status_reason": "Initializing",
"updated_at": None,
"user": "5e5bf8027826429c96af157f68dc9072"
}}
defaults = {
"name": "new_node",
@@ -304,12 +281,31 @@ class TestNodeUpdate(TestNode):
def setUp(self):
super(TestNodeUpdate, self).setUp()
self.cmd = osc_node.UpdateNode(self.app, None)
self.mock_client.update_node = mock.Mock(
return_value=sdk_node.Node(**self.response['node']))
self.mock_client.get_node = mock.Mock(
return_value=sdk_node.Node(**self.response['node']))
self.mock_client.find_node = mock.Mock(
return_value=sdk_node.Node(**self.response['node']))
fake_node = mock.Mock(
action="2366d440-c73e-4961-9254-6d1c3af7c167",
cluster_id="",
created_at=None,
data={},
domain=None,
id="0df0931b-e251-4f2e-8719-4ebfda3627ba",
index=-1,
init_time="2015-03-05T08:53:15",
metadata={},
physical_id=None,
profile_id="edc63d0a-2ca4-48fa-9854-27926da76a4a",
profile_name="mystack",
project_id="6e18cc2bdbeb48a5b3cad2dc499f6804",
role="master",
status="INIT",
status_reason="Initializing",
updated_at=None,
user_id="5e5bf8027826429c96af157f68dc9072"
)
fake_node.name = "my_node"
fake_node.to_dict = mock.Mock(return_value={})
self.mock_client.update_node = mock.Mock(return_value=fake_node)
self.mock_client.get_node = mock.Mock(return_value=fake_node)
self.mock_client.find_node = mock.Mock(return_value=fake_node)
def test_node_update_defaults(self):
arglist = ['--name', 'new_node', '--metadata', 'nk1=nv1;nk2=nv2',
@@ -434,13 +430,14 @@ class TestNodeCheck(TestNode):
class TestNodeRecover(TestNode):
response = {"action": "8bb476c3-0f4c-44ee-9f64-c7b0260814de"}
action_id = "8bb476c3-0f4c-44ee-9f64-c7b0260814de"
def setUp(self):
super(TestNodeRecover, self).setUp()
self.cmd = osc_node.RecoverNode(self.app, None)
self.mock_client.recover_node = mock.Mock(
return_value=self.response)
fake_res = {'action': self.action_id}
self.mock_client.recover_node = mock.Mock(return_value=fake_res)
def test_node_recover(self):
arglist = ['node1', 'node2', 'node3']

View File

@@ -13,7 +13,6 @@
import copy
import mock
from openstack.cluster.v1 import policy as sdk_policy
from openstack import exceptions as sdk_exc
from osc_lib import exceptions as exc
import six
@@ -32,26 +31,6 @@ class TestPolicyList(TestPolicy):
columns = ['id', 'name', 'type', 'created_at']
response = {"policies": [
{
"created_at": "2015-02-15T08:33:13.000000",
"data": {},
"domain": 'null',
"id": "7192d8df-73be-4e98-ab99-1cf6d5066729",
"name": "test_policy_1",
"project": "42d9e9663331431f97b75e25136307ff",
"spec": {
"description": "A test policy",
"properties": {
"criteria": "OLDEST_FIRST",
"destroy_after_deletion": True,
"grace_period": 60,
"reduce_desired_capacity": False
},
"type": "senlin.policy.deletion",
"version": "1.0"
},
"type": "senlin.policy.deletion-1.0",
"updated_at": 'null',
"user": "5e5bf8027826429c96af157f68dc9072"
}
]}
defaults = {
@@ -64,6 +43,29 @@ class TestPolicyList(TestPolicy):
def setUp(self):
super(TestPolicyList, self).setUp()
self.cmd = osc_policy.ListPolicy(self.app, None)
fake_policy = mock.Mock(
created_at="2015-02-15T08:33:13.000000",
data={},
domain=None,
id="7192d8df-73be-4e98-ab99-1cf6d5066729",
project_id="42d9e9663331431f97b75e25136307ff",
spec={
"description": "A test policy",
"properties": {
"criteria": "OLDEST_FIRST",
"destroy_after_deletion": True,
"grace_period": 60,
"reduce_desired_capacity": False
},
"type": "senlin.policy.deletion",
"version": "1.0"
},
type="senlin.policy.deletion-1.0",
updated_at=None,
user_id="5e5bf8027826429c96af157f68dc9072"
)
fake_policy.name = "test_policy_1"
fake_policy.to_dict = mock.Mock(return_value={})
self.mock_client.policies = mock.Mock(
return_value=self.response)
@@ -142,53 +144,53 @@ class TestPolicyList(TestPolicy):
class TestPolicyShow(TestPolicy):
response = {"policy": {
"created_at": "2015-03-02T07:40:31",
"data": {},
"domain": 'null',
"id": "02f62195-2198-4797-b0a9-877632208527",
"name": "sp001",
"project": "42d9e9663331431f97b75e25136307ff",
"spec": {
"properties": {
"adjustment": {
"best_effort": True,
"min_step": 1,
"number": 1,
"type": "CHANGE_IN_CAPACITY"
},
"event": "CLUSTER_SCALE_IN"
},
"type": "senlin.policy.scaling",
"version": "1.0"
},
"type": "senlin.policy.scaling-1.0",
"updated_at": 'null',
"user": "5e5bf8027826429c96af157f68dc9072"
}}
def setUp(self):
super(TestPolicyShow, self).setUp()
self.cmd = osc_policy.ShowPolicy(self.app, None)
self.mock_client.get_policy = mock.Mock(
return_value=sdk_policy.Policy(**self.response['policy']))
fake_policy = mock.Mock(
created_at="2015-03-02T07:40:31",
data={},
domain_id=None,
id="02f62195-2198-4797-b0a9-877632208527",
project_id="42d9e9663331431f97b75e25136307ff",
spec={
"properties": {
"adjustment": {
"best_effort": True,
"min_step": 1,
"number": 1,
"type": "CHANGE_IN_CAPACITY"
},
"event": "CLUSTER_SCALE_IN"
},
"type": "senlin.policy.scaling",
"version": "1.0"
},
type="senlin.policy.scaling-1.0",
updated_at=None,
user_id="5e5bf8027826429c96af157f68dc9072"
)
fake_policy.name = "sp001"
fake_policy.to_dict = mock.Mock(return_value={})
self.mock_client.get_policy = mock.Mock(return_value=fake_policy)
def test_policy_show(self):
arglist = ['sp001']
parsed_args = self.check_parser(self.cmd, arglist, [])
self.cmd.take_action(parsed_args)
self.mock_client.get_policy.assert_called_with('sp001')
policy = self.mock_client.get_policy('sp001')
self.assertEqual(self.response['policy']['created_at'],
policy.created_at)
self.assertEqual(self.response['policy']['data'], policy.data)
self.assertEqual(self.response['policy']['id'], policy.id)
self.assertEqual(self.response['policy']['name'], policy.name)
self.assertEqual(self.response['policy']['project'],
policy.project_id)
self.assertEqual(self.response['policy']['spec'], policy.spec)
self.assertEqual(self.response['policy']['type'], policy.type)
self.assertEqual(self.response['policy']['updated_at'],
policy.updated_at)
self.assertEqual("2015-03-02T07:40:31", policy.created_at)
self.assertEqual({}, policy.data)
self.assertEqual("02f62195-2198-4797-b0a9-877632208527", policy.id)
self.assertEqual("sp001", policy.name)
self.assertEqual("42d9e9663331431f97b75e25136307ff", policy.project_id)
self.assertEqual("senlin.policy.scaling-1.0", policy.type)
self.assertIsNone(policy.updated_at)
def test_policy_show_not_found(self):
arglist = ['sp001']
@@ -199,29 +201,6 @@ class TestPolicyShow(TestPolicy):
class TestPolicyCreate(TestPolicy):
spec_path = 'senlinclient/tests/test_specs/deletion_policy.yaml'
response = {"policy": {
"created_at": "2016-02-21T02:38:36",
"data": {},
"domain": 'null',
"id": "9f779ddf-744e-48bd-954c-acef7e11116c",
"name": "my_policy",
"project": "5f1cc92b578e4e25a3b284179cf20a9b",
"spec": {
"description": "A policy for choosing victim node(s) from a "
"cluster for deletion.",
"properties": {
"criteria": "OLDEST_FIRST",
"destroy_after_deletion": True,
"grace_period": 60,
"reduce_desired_capacity": False
},
"type": "senlin.policy.deletion",
"version": 1.0
},
"type": "senlin.policy.deletion-1.0",
"updated_at": 'null',
"user": "2d7aca950f3e465d8ef0c81720faf6ff"
}}
defaults = {
"name": "my_policy",
"spec": {
@@ -241,10 +220,32 @@ class TestPolicyCreate(TestPolicy):
def setUp(self):
super(TestPolicyCreate, self).setUp()
self.cmd = osc_policy.CreatePolicy(self.app, None)
self.mock_client.create_policy = mock.Mock(
return_value=sdk_policy.Policy(**self.response['policy']))
self.mock_client.get_policy = mock.Mock(
return_value=sdk_policy.Policy(**self.response['policy']))
fake_policy = mock.Mock(
created_at="2016-02-21T02:38:36",
data={},
domain_id=None,
id="9f779ddf-744e-48bd-954c-acef7e11116c",
project_id="5f1cc92b578e4e25a3b284179cf20a9b",
spec={
"description": "A policy for choosing victim node(s) from a "
"cluster for deletion.",
"properties": {
"criteria": "OLDEST_FIRST",
"destroy_after_deletion": True,
"grace_period": 60,
"reduce_desired_capacity": False
},
"type": "senlin.policy.deletion",
"version": 1.0
},
type="senlin.policy.deletion-1.0",
updated_at=None,
user_id="2d7aca950f3e465d8ef0c81720faf6ff"
)
fake_policy.name = "my_policy"
fake_policy.to_dict = mock.Mock(return_value={})
self.mock_client.create_policy = mock.Mock(return_value=fake_policy)
self.mock_client.get_policy = mock.Mock(return_value=fake_policy)
def test_policy_create_defaults(self):
arglist = ['my_policy', '--spec-file', self.spec_path]
@@ -254,50 +255,46 @@ class TestPolicyCreate(TestPolicy):
class TestPolicyUpdate(TestPolicy):
response = {"policy": {
"created_at": "2016-02-21T02:38:36",
"data": {},
"domain": 'null',
"id": "9f779ddf-744e-48bd-954c-acef7e11116c",
"name": "new_policy",
"project": "5f1cc92b578e4e25a3b284179cf20a9b",
"spec": {
"description": "A policy for choosing victim node(s) from a "
"cluster for deletion.",
"properties": {
"criteria": "OLDEST_FIRST",
"destroy_after_deletion": True,
"grace_period": 60,
"reduce_desired_capacity": False
},
"type": "senlin.policy.deletion",
"version": 1.0
},
"type": "senlin.policy.deletion-1.0",
"updated_at": 'null',
"user": "2d7aca950f3e465d8ef0c81720faf6ff"
}}
defaults = {
"name": "new_policy"
}
def setUp(self):
super(TestPolicyUpdate, self).setUp()
self.cmd = osc_policy.UpdatePolicy(self.app, None)
self.mock_client.update_policy = mock.Mock(
return_value=sdk_policy.Policy(**self.response['policy']))
self.mock_client.get_policy = mock.Mock(
return_value=sdk_policy.Policy(**self.response['policy']))
self.mock_client.find_policy = mock.Mock(
return_value=sdk_policy.Policy(**self.response['policy']))
fake_policy = mock.Mock(
created_at="2016-02-21T02:38:36",
data={},
domain_id=None,
id="9f779ddf-744e-48bd-954c-acef7e11116c",
project_id="5f1cc92b578e4e25a3b284179cf20a9b",
spec={
"description": "A policy for choosing victim node(s) from a "
"cluster for deletion.",
"properties": {
"criteria": "OLDEST_FIRST",
"destroy_after_deletion": True,
"grace_period": 60,
"reduce_desired_capacity": False
},
"type": "senlin.policy.deletion",
"version": 1.0
},
type="senlin.policy.deletion-1.0",
updated_at=None,
user_id="2d7aca950f3e465d8ef0c81720faf6ff"
)
fake_policy.name = "new_policy"
fake_policy.to_dict = mock.Mock(return_value={})
self.mock_client.update_policy = mock.Mock(return_value=fake_policy)
self.mock_client.get_policy = mock.Mock(return_value=fake_policy)
self.mock_client.find_policy = mock.Mock(return_value=fake_policy)
def test_policy_update_defaults(self):
arglist = ['--name', 'new_policy', '9f779ddf']
parsed_args = self.check_parser(self.cmd, arglist, [])
self.cmd.take_action(parsed_args)
self.mock_client.update_policy.assert_called_with(
'9f779ddf-744e-48bd-954c-acef7e11116c', **self.defaults)
'9f779ddf-744e-48bd-954c-acef7e11116c', name="new_policy")
def test_policy_update_not_found(self):
arglist = ['--name', 'new_policy', 'c6b8b252']
@@ -384,29 +381,6 @@ class TestPolicyDelete(TestPolicy):
class TestPolicyValidate(TestPolicy):
spec_path = 'senlinclient/tests/test_specs/deletion_policy.yaml'
response = {"policy": {
"created_at": None,
"data": {},
"domain": 'null',
"id": None,
"name": "validated_policy",
"project": "5f1cc92b578e4e25a3b284179cf20a9b",
"spec": {
"description": "A policy for choosing victim node(s) from a "
"cluster for deletion.",
"properties": {
"criteria": "OLDEST_FIRST",
"destroy_after_deletion": True,
"grace_period": 60,
"reduce_desired_capacity": False
},
"type": "senlin.policy.deletion",
"version": 1.0
},
"type": "senlin.policy.deletion-1.0",
"updated_at": 'null',
"user": "2d7aca950f3e465d8ef0c81720faf6ff"
}}
defaults = {
"spec": {
"version": 1,
@@ -425,23 +399,43 @@ class TestPolicyValidate(TestPolicy):
def setUp(self):
super(TestPolicyValidate, self).setUp()
self.cmd = osc_policy.ValidatePolicy(self.app, None)
self.mock_client.validate_policy = mock.Mock(
return_value=sdk_policy.Policy(**self.response['policy']))
fake_policy = mock.Mock(
created_at=None,
data={},
domain_id=None,
id=None,
project_id="5f1cc92b578e4e25a3b284179cf20a9b",
spec={
"description": "A policy for choosing victim node(s) from a "
"cluster for deletion.",
"properties": {
"criteria": "OLDEST_FIRST",
"destroy_after_deletion": True,
"grace_period": 60,
"reduce_desired_capacity": False
},
"type": "senlin.policy.deletion",
"version": 1.0
},
type="senlin.policy.deletion-1.0",
updated_at=None,
user_id="2d7aca950f3e465d8ef0c81720faf6ff"
)
fake_policy.name = "validated_policy"
fake_policy.to_dict = mock.Mock(return_value={})
self.mock_client.validate_policy = mock.Mock(return_value=fake_policy)
def test_policy_validate(self):
arglist = ['--spec-file', self.spec_path]
parsed_args = self.check_parser(self.cmd, arglist, [])
self.cmd.take_action(parsed_args)
self.mock_client.validate_policy.assert_called_with(**self.defaults)
policy = self.mock_client.validate_policy(**self.defaults)
self.assertEqual(self.response['policy']['project'],
policy.project_id)
self.assertEqual(self.response['policy']['data'], policy.data)
self.assertEqual(self.response['policy']['id'], policy.id)
self.assertEqual(self.response['policy']['name'], policy.name)
self.assertEqual(self.response['policy']['project'],
policy.project_id)
self.assertEqual(self.response['policy']['spec'], policy.spec)
self.assertEqual(self.response['policy']['type'], policy.type)
self.assertEqual(self.response['policy']['updated_at'],
policy.updated_at)
self.assertEqual("5f1cc92b578e4e25a3b284179cf20a9b", policy.project_id)
self.assertEqual({}, policy.data)
self.assertIsNone(policy.id)
self.assertEqual("validated_policy", policy.name)
self.assertEqual("senlin.policy.deletion-1.0", policy.type)
self.assertIsNone(policy.updated_at)

View File

@@ -11,7 +11,6 @@
# under the License.
import mock
from openstack.cluster.v1 import policy_type as sdk_policy_type
from openstack import exceptions as sdk_exc
from osc_lib import exceptions as exc
@@ -27,20 +26,21 @@ class TestPolicyType(fakes.TestClusteringv1):
class TestPolicyTypeList(TestPolicyType):
expected_columns = ['name', 'version', 'support_status']
list_response = [
sdk_policy_type.PolicyType(
name='BBB', schema={'foo': 'bar'},
support_status={
"1.0": [{"status": "SUPPORTED", "since": "2016.10"}]
}
),
sdk_policy_type.PolicyType(
name='AAA', schema={'foo': 'bar'},
support_status={
"1.0": [{"status": "DEPRECATED", "since": "2016.01"}]
}
),
]
pt1 = mock.Mock(
schema={'foo': 'bar'},
support_status={
"1.0": [{"status": "SUPPORTED", "since": "2016.10"}]
}
)
pt1.name = 'BBB'
pt2 = mock.Mock(
schema={'foo': 'bar'},
support_status={
"1.0": [{"status": "DEPRECATED", "since": "2016.01"}]
}
)
pt2.name = 'AAA'
list_response = [pt1, pt2]
expected_rows = [
('AAA', '1.0', 'DEPRECATED since 2016.01'),
('BBB', '1.0', 'SUPPORTED since 2016.10')
@@ -64,16 +64,12 @@ class TestPolicyTypeList(TestPolicyType):
class TestPolicyTypeShow(TestPolicyType):
response = ({'name': 'senlin.policy.deletion-1.0',
'schema': {
'foo': 'bar'}})
def setUp(self):
super(TestPolicyTypeShow, self).setUp()
self.cmd = osc_policy_type.PolicyTypeShow(self.app, None)
self.mock_client.get_policy_type = mock.Mock(
return_value=sdk_policy_type.PolicyType(**self.response)
)
fake_pt = mock.Mock(schema={'foo': 'bar'})
fake_pt.name = 'senlin.policy.deletion-1.0'
self.mock_client.get_policy_type = mock.Mock(return_value=fake_pt)
def test_policy_type_show(self):
arglist = ['os.heat.stack-1.0']