Add assertions to UT code

There are test cases in which there is no assertion in the UT code.
In that test case, the proper test has not been done.
This patch adds assertions to the test cases to test them properly.

Change-Id: Idb7c602e3c73908ad04c587a2e3eb53b0a3e70b2
Closes-Bug: #1668886
This commit is contained in:
Kengo Takahara 2017-06-19 14:36:03 +09:00
parent bd4c9251f7
commit 445aab9cdb
3 changed files with 161 additions and 134 deletions

View File

@ -18,6 +18,7 @@ test_masakariclient
Tests for `masakariclient` module.
"""
import mock
import uuid
from osc_lib import utils
@ -26,6 +27,11 @@ from masakariclient.osc.v1.host import ShowHost
from masakariclient.osc.v1.host import UpdateHost
from masakariclient.tests import base
HOST_NAME = 'host_name'
HOST_ID = uuid.uuid4()
SEGMENT_NAME = 'segment_name'
SEGMENT_ID = uuid.uuid4()
class FakeNamespace(object):
"""Fake parser object."""
@ -50,6 +56,14 @@ class FakeHosts(object):
self.uuid = uuid
class FakeSegments(object):
"""Fake segment show detail."""
def __init__(self, name=None, uuid=None):
super(FakeSegments, self).__init__()
self.name = name
self.uuid = uuid
class FakeHost(object):
"""Fake segment show detail."""
def __init__(self,):
@ -58,49 +72,53 @@ class FakeHost(object):
def to_dict(self):
return {
'reserved': 'False',
'uuid': '124aa63c-bbe1-46c3-91a9-285fac7d86c6',
'segment_id': '870da19d-37ec-41d2-a4b2-7be54b0d6ec9',
'uuid': HOST_ID,
'on_maintenance': False,
'created_at': '2016-12-18T05:47:55.000000',
'control_attributes': 'control_attributes',
'updated_at': None,
'name': 'host_name',
'name': HOST_NAME,
'type': 'auto',
'id': 18,
'failover_segment_id': '187dd15a-9c1d-4bf7-9f6c-014d5bc66992',
'failover_segment_id': SEGMENT_ID,
}
class TestV1ShowHost(base.TestCase):
class BaseV1Host(base.TestCase):
def setUp(self):
super(BaseV1Host, self).setUp()
self.app = mock.Mock()
self.app_args = mock.Mock()
self.client_manager = mock.Mock()
self.app.client_manager.ha = self.client_manager
self.columns = [
'created_at', 'updated_at', 'uuid', 'name', 'type',
'control_attributes', 'reserved', 'on_maintenance',
'failover_segment_id',
]
# fake host list
self.dummy_hosts = [FakeHosts(name=HOST_NAME, uuid=HOST_ID)]
# fake segment list
self.dummy_segments = [FakeSegments(name=SEGMENT_NAME,
uuid=SEGMENT_ID)]
# fake host show
self.dummy_host = FakeHost()
class TestV1ShowHost(BaseV1Host):
def setUp(self):
super(TestV1ShowHost, self).setUp()
self.app = mock.Mock()
self.app_args = mock.Mock()
self.show_host = ShowHost(self.app, self.app_args,
cmd_name='host show')
self.client_manager = mock.Mock()
self.app.client_manager.ha = self.client_manager
self.columns = [
'created_at', 'updated_at', 'uuid', 'name', 'type',
'control_attributes', 'reserved', 'on_maintenance',
'failover_segment_id',
]
# fake host list
self.dummy_hosts = []
self.dummy_hosts.append(FakeHosts(
name='host_name',
uuid='124aa63c-bbe1-46c3-91a9-285fac7d86c6'))
# fake host show
self.dummy_host = FakeHost()
@mock.patch.object(utils, 'get_dict_properties')
def test_take_action_by_uuid(self, mock_get_dict_properties):
# command param
parsed_args = FakeNamespace(
segment_id='187dd15a-9c1d-4bf7-9f6c-014d5bc66992',
host='124aa63c-bbe1-46c3-91a9-285fac7d86c6')
parsed_args = FakeNamespace(segment_id=SEGMENT_ID, host=HOST_ID)
# return value segment list
self.app.client_manager.ha.segments.return_value = self.dummy_segments
# return value host list
self.app.client_manager.ha.hosts.return_value = self.dummy_hosts
# return value host show
@ -115,9 +133,9 @@ class TestV1ShowHost(base.TestCase):
def test_take_action_by_name(self, mock_get_dict_properties):
# command param
parsed_args = FakeNamespace(
segment_id='187dd15a-9c1d-4bf7-9f6c-014d5bc66992',
host='host_name')
parsed_args = FakeNamespace(segment_id=SEGMENT_ID, host=HOST_NAME)
# return value segment list
self.app.client_manager.ha.segments.return_value = self.dummy_segments
# return value host list
self.app.client_manager.ha.hosts.return_value = self.dummy_hosts
# return value host show
@ -128,37 +146,20 @@ class TestV1ShowHost(base.TestCase):
self.dummy_host.to_dict(), self.columns, formatters={})
class TestV1UpdateHost(base.TestCase):
class TestV1UpdateHost(BaseV1Host):
def setUp(self):
super(TestV1UpdateHost, self).setUp()
self.app = mock.Mock()
self.app_args = mock.Mock()
self.update_host = UpdateHost(self.app, self.app_args,
cmd_name='host update')
self.client_manager = mock.Mock()
self.app.client_manager.ha = self.client_manager
self.columns = [
'created_at', 'updated_at', 'uuid', 'name', 'type',
'control_attributes', 'reserved', 'on_maintenance',
'failover_segment_id',
]
# fake host list
self.dummy_hosts = []
self.dummy_hosts.append(FakeHosts(
name='host_name',
uuid='124aa63c-bbe1-46c3-91a9-285fac7d86c6'))
# fake host show
self.dummy_host = FakeHost()
@mock.patch.object(utils, 'get_dict_properties')
def test_take_action_by_uuid(self, mock_get_dict_properties):
# command param
parsed_args = FakeNamespace(
segment_id='187dd15a-9c1d-4bf7-9f6c-014d5bc66992',
host='124aa63c-bbe1-46c3-91a9-285fac7d86c6',
reserved=True)
segment_id=SEGMENT_ID, host=HOST_ID, reserved=True)
# return value segment list
self.app.client_manager.ha.segments.return_value = self.dummy_segments
# return value host list
self.app.client_manager.ha.hosts.return_value = self.dummy_hosts
# return value host show
@ -173,9 +174,9 @@ class TestV1UpdateHost(base.TestCase):
# command param
parsed_args = FakeNamespace(
segment_id='187dd15a-9c1d-4bf7-9f6c-014d5bc66992',
host='host_name',
reserved=True)
segment_id=SEGMENT_ID, host=HOST_NAME, reserved=True)
# return value segment list
self.app.client_manager.ha.segments.return_value = self.dummy_segments
# return value host list
self.app.client_manager.ha.hosts.return_value = self.dummy_hosts
# return value host show
@ -186,53 +187,40 @@ class TestV1UpdateHost(base.TestCase):
self.dummy_host.to_dict(), self.columns, formatters={})
class TestV1DeleteHost(base.TestCase):
class TestV1DeleteHost(BaseV1Host):
def setUp(self):
super(TestV1DeleteHost, self).setUp()
self.app = mock.Mock()
self.app_args = mock.Mock()
self.delete_host = DeleteHost(self.app, self.app_args,
cmd_name='host update')
self.client_manager = mock.Mock()
self.app.client_manager.ha = self.client_manager
self.columns = [
'created_at', 'updated_at', 'uuid', 'name', 'type',
'control_attributes', 'reserved', 'on_maintenance',
'failover_segment_id',
]
# fake host list
self.dummy_hosts = []
self.dummy_hosts.append(FakeHosts(
name='host_name',
uuid='124aa63c-bbe1-46c3-91a9-285fac7d86c6'))
# fake host show
self.dummy_host = FakeHost()
cmd_name='host delete')
def test_take_action_by_uuid(self):
# command param
parsed_args = FakeNamespace(
segment_id='187dd15a-9c1d-4bf7-9f6c-014d5bc66992',
host='124aa63c-bbe1-46c3-91a9-285fac7d86c6')
parsed_args = FakeNamespace(segment_id=SEGMENT_ID, host=HOST_ID)
# return value segment list
self.app.client_manager.ha.segments.return_value = self.dummy_segments
# return value host list
self.app.client_manager.ha.hosts.return_value = self.dummy_hosts
# return value host show
self.app.client_manager.ha.get_host.return_value =\
self.dummy_host
self.app.client_manager.ha.delete_host.return_value = None
# show the host specified by uuid
self.delete_host.take_action(parsed_args)
self.app.client_manager.ha.delete_host.assert_called_once_with(
SEGMENT_ID, HOST_ID, False)
def test_take_action_by_name(self):
# command param
parsed_args = FakeNamespace(
segment_id='187dd15a-9c1d-4bf7-9f6c-014d5bc66992',
host='host_name')
parsed_args = FakeNamespace(segment_id=SEGMENT_ID, host=HOST_NAME)
# return value segment list
self.app.client_manager.ha.segments.return_value = self.dummy_segments
# return value host list
self.app.client_manager.ha.hosts.return_value = self.dummy_hosts
# return value host show
self.app.client_manager.ha.get_host.return_value =\
self.dummy_host
self.app.client_manager.ha.delete_host.return_value = None
# show the host specified by name
self.delete_host.take_action(parsed_args)
self.app.client_manager.ha.delete_host.assert_called_once_with(
SEGMENT_ID, HOST_ID, False)

View File

@ -18,6 +18,7 @@ test_masakariclient
Tests for `masakariclient` module.
"""
import mock
import uuid
from osc_lib import utils
@ -26,6 +27,9 @@ from masakariclient.osc.v1.segment import ShowSegment
from masakariclient.osc.v1.segment import UpdateSegment
from masakariclient.tests import base
SEGMENT_NAME = 'segment_name'
SEGMENT_ID = uuid.uuid4()
class FakeNamespace(object):
"""Fake parser object."""
@ -62,8 +66,8 @@ class FakeSegment(object):
return {
'created_at': '2016-12-18T05:47:46.000000',
'updated_at': '2016-12-18T06:05:16.000000',
'uuid': '187dd15a-9c1d-4bf7-9f6c-014d5bc66992',
'name': 'test_segment',
'uuid': SEGMENT_ID,
'name': SEGMENT_NAME,
'description': 'test_segment_description',
'id': 1,
'service_type': 'test_type',
@ -71,35 +75,38 @@ class FakeSegment(object):
}
class TestV1ShowSegment(base.TestCase):
class BaseV1Segment(base.TestCase):
def setUp(self):
super(TestV1ShowSegment, self).setUp()
super(BaseV1Segment, self).setUp()
self.app = mock.Mock()
self.app_args = mock.Mock()
self.client_manager = mock.Mock()
self.app.client_manager.ha = self.client_manager
# segment data setup
self.dummy_segment = FakeSegment()
class TestV1ShowSegment(BaseV1Segment):
def setUp(self):
super(TestV1ShowSegment, self).setUp()
self.show_seg = ShowSegment(self.app,
self.app_args,
cmd_name='segment show')
self.client_manager = mock.Mock()
self.app.client_manager.ha = self.client_manager
self.columns = ['created_at', 'updated_at', 'uuid',
'name', 'description', 'id', 'service_type',
'recovery_method',
]
# return value segment list
self.dummy_segments = []
self.dummy_segments.append(FakeSegments(
name='segment_name',
uuid='187dd15a-9c1d-4bf7-9f6c-014d5bc66992'))
# return value segment show
self.dummy_segment = FakeSegment()
self.dummy_segments = [FakeSegments(name=SEGMENT_NAME,
uuid=SEGMENT_ID)]
@mock.patch.object(utils, 'get_dict_properties')
def test_take_action_by_uuid(self, mock_get_dict_properties):
# command param
parsed_args = FakeNamespace(
segment='187dd15a-9c1d-4bf7-9f6c-014d5bc66992')
parsed_args = FakeNamespace(segment=SEGMENT_ID)
# return value segment list
self.app.client_manager.ha.segments.return_value =\
self.dummy_segments
@ -115,14 +122,10 @@ class TestV1ShowSegment(base.TestCase):
def test_take_action_by_name(self, mock_get_dict_properties):
# command param
parsed_args = FakeNamespace(segment='segment_name')
parsed_args = FakeNamespace(segment=SEGMENT_NAME)
# return value segment list
dummy_segments = []
dummy_segments.append(FakeSegments(
name='segment_name',
uuid='187dd15a-9c1d-4bf7-9f6c-014d5bc66992'))
self.app.client_manager.ha.segments.return_value =\
dummy_segments
self.dummy_segments
# return value segment show
dummy_segment = FakeSegment()
self.app.client_manager.ha.get_segment.return_value =\
@ -133,38 +136,36 @@ class TestV1ShowSegment(base.TestCase):
dummy_segment.to_dict(), self.columns, formatters={})
class TestV1UpdateSegment(base.TestCase):
class TestV1UpdateSegment(BaseV1Segment):
def setUp(self):
super(TestV1UpdateSegment, self).setUp()
self.app = mock.Mock()
self.app_args = mock.Mock()
self.update_seg = UpdateSegment(self.app,
self.app_args,
cmd_name='segment update')
self.client_manager = mock.Mock()
self.app.client_manager.ha = self.client_manager
self.columns = ['created_at', 'updated_at', 'uuid',
'name', 'description', 'id', 'service_type',
'recovery_method',
]
# segment list
self.dummy_segments = []
self.dummy_segments = [
FakeSegments(
name=SEGMENT_NAME, uuid=SEGMENT_ID,
description='FakeNamespace_description',
recovery_method='Update_recovery_method',
service_type='test_type')]
self.dummy_segments.append(FakeSegments(
name='segment_name',
uuid='187dd15a-9c1d-4bf7-9f6c-014d5bc66992',
name=SEGMENT_NAME, uuid=SEGMENT_ID,
description='FakeNamespace_description',
recovery_method='Update_recovery_method',
service_type='test_type'))
# segment data setup
self.dummy_segment = FakeSegment()
@mock.patch.object(utils, 'get_dict_properties')
def test_take_action_by_uuid(self, mock_get_dict_properties):
# command param
parsed_args = FakeNamespace(
segment='187dd15a-9c1d-4bf7-9f6c-014d5bc66992',
segment=SEGMENT_ID,
description='FakeNamespace_description')
# return value segment list
self.app.client_manager.ha.segments.return_value =\
@ -181,7 +182,7 @@ class TestV1UpdateSegment(base.TestCase):
def test_take_action_by_name(self, mock_get_dict_properties):
# command param
parsed_args = FakeNamespace(segment='segment_name')
parsed_args = FakeNamespace(segment=SEGMENT_NAME)
# return value segment list
self.app.client_manager.ha.segments.return_value =\
self.dummy_segments
@ -194,57 +195,53 @@ class TestV1UpdateSegment(base.TestCase):
self.dummy_segment.to_dict(), self.columns, formatters={})
class TestV1DeleteSegment(base.TestCase):
class TestV1DeleteSegment(BaseV1Segment):
def setUp(self):
super(TestV1DeleteSegment, self).setUp()
self.app = mock.Mock()
self.app_args = mock.Mock()
self.delete_seg = DeleteSegment(self.app,
self.app_args,
cmd_name='segment delete')
self.client_manager = mock.Mock()
self.app.client_manager.ha = self.client_manager
# segment list
self.dummy_segments = []
self.dummy_segments.append(FakeSegments(
name='segment_name',
uuid='187dd15a-9c1d-4bf7-9f6c-014d5bc66992',
description='FakeNamespace_description',
recovery_method='Update_recovery_method',
service_type='test_type'))
# segment
self.dummy_segment = FakeSegment()
self.dummy_segments = [
FakeSegments(
name=SEGMENT_NAME, uuid=SEGMENT_ID,
description='FakeNamespace_description',
recovery_method='Update_recovery_method',
service_type='test_type')]
def test_take_action_by_uuid(self):
# command param
parsed_args = FakeNamespace(
segment='187dd15a-9c1d-4bf7-9f6c-014d5bc66992')
parsed_args = FakeNamespace(segment=[SEGMENT_ID])
# return_value segment list
self.app.client_manager.ha.segments.return_value =\
self.dummy_segments
# return_value segment delete
self.app.client_manager.ha.delete_segment.return_value =\
self.dummy_segment
self.app.client_manager.ha.delete_segment.return_value = None
# segment delete
self.delete_seg.take_action(parsed_args)
self.app.client_manager.ha.delete_segment.assert_called_once_with(
SEGMENT_ID, False)
def test_take_action_by_name(self):
# command param
parsed_args = FakeNamespace(segment='segment_name')
parsed_args = FakeNamespace(segment=[SEGMENT_NAME])
# return_value segment list
self.app.client_manager.ha.segments.return_value =\
self.dummy_segments
# return_value segment delete
self.app.client_manager.ha.delete_segment.return_value =\
self.dummy_segment
self.app.client_manager.ha.delete_segment.return_value = None
# segment delete
self.delete_seg.take_action(parsed_args)
self.app.client_manager.ha.delete_segment.assert_called_once_with(
SEGMENT_ID, False)

View File

@ -23,7 +23,49 @@ class TestCliArgs(testtools.TestCase):
def test_add_global_identity_args(self):
parser = mock.Mock()
cliargs.add_global_identity_args(parser)
expected = [
'--os-auth-plugin',
'--os-auth-url',
'--os-project-id',
'--os-project-name',
'--os-tenant-id',
'--os-tenant-name',
'--os-domain-id',
'--os-domain-name',
'--os-project-domain-id',
'--os-project-domain-name',
'--os-user-domain-id',
'--os-user-domain-name',
'--os-username',
'--os-user-id',
'--os-password',
'--os-trust-id',
'--os-token',
'--os-access-info'
]
options = [arg[0][0] for arg in parser.add_argument.call_args_list]
self.assertEqual(expected, options)
parser.add_mutually_exclusive_group.assert_called_once_with()
group = parser.add_mutually_exclusive_group.return_value
verify_opts = [arg[0][0] for arg in group.add_argument.call_args_list]
verify_args = [
'--os-cacert',
'--verify',
'--insecure'
]
self.assertEqual(verify_args, verify_opts)
def test_add_global_args(self):
parser = mock.Mock()
cliargs.add_global_args(parser, '1')
expected = [
'-h',
'--masakari-api-version',
'-d'
]
options = [arg[0][0] for arg in parser.add_argument.call_args_list]
self.assertEqual(expected, options)