diff options
Diffstat (limited to 'openstackclient/tests/network')
| -rw-r--r-- | openstackclient/tests/network/v2/test_security_group.py | 151 |
1 files changed, 142 insertions, 9 deletions
diff --git a/openstackclient/tests/network/v2/test_security_group.py b/openstackclient/tests/network/v2/test_security_group.py index 72da1400..ea964425 100644 --- a/openstackclient/tests/network/v2/test_security_group.py +++ b/openstackclient/tests/network/v2/test_security_group.py @@ -14,24 +14,29 @@ import mock from openstackclient.network.v2 import security_group +from openstackclient.tests.compute.v2 import fakes as compute_fakes from openstackclient.tests.network.v2 import fakes as network_fakes -class TestSecurityGroup(network_fakes.TestNetworkV2): +class TestSecurityGroupNetwork(network_fakes.TestNetworkV2): def setUp(self): - super(TestSecurityGroup, self).setUp() + super(TestSecurityGroupNetwork, self).setUp() # Get a shortcut to the network client self.network = self.app.client_manager.network - # Create compute client mocks. - self.app.client_manager.compute = mock.Mock() + +class TestSecurityGroupCompute(compute_fakes.TestComputev2): + + def setUp(self): + super(TestSecurityGroupCompute, self).setUp() + + # Get a shortcut to the compute client self.compute = self.app.client_manager.compute - self.compute.security_groups = mock.Mock() -class TestDeleteSecurityGroupNetwork(TestSecurityGroup): +class TestDeleteSecurityGroupNetwork(TestSecurityGroupNetwork): # The security group to be deleted. _security_group = \ @@ -64,11 +69,11 @@ class TestDeleteSecurityGroupNetwork(TestSecurityGroup): self.assertIsNone(result) -class TestDeleteSecurityGroupCompute(TestSecurityGroup): +class TestDeleteSecurityGroupCompute(TestSecurityGroupCompute): # The security group to be deleted. _security_group = \ - network_fakes.FakeSecurityGroup.create_one_security_group() + compute_fakes.FakeSecurityGroup.create_one_security_group() def setUp(self): super(TestDeleteSecurityGroupCompute, self).setUp() @@ -81,7 +86,7 @@ class TestDeleteSecurityGroupCompute(TestSecurityGroup): return_value=self._security_group) # Get the command object to test - self.cmd = security_group.DeleteSecurityGroup(self.app, self.namespace) + self.cmd = security_group.DeleteSecurityGroup(self.app, None) def test_security_group_delete(self): arglist = [ @@ -97,3 +102,131 @@ class TestDeleteSecurityGroupCompute(TestSecurityGroup): self.compute.security_groups.delete.assert_called_with( self._security_group.id) self.assertIsNone(result) + + +class TestListSecurityGroupNetwork(TestSecurityGroupNetwork): + + # The security group to be listed. + _security_group = \ + network_fakes.FakeSecurityGroup.create_one_security_group() + + expected_columns = ( + 'ID', + 'Name', + 'Description', + 'Project', + ) + + expected_data = (( + _security_group.id, + _security_group.name, + _security_group.description, + _security_group.tenant_id, + ),) + + def setUp(self): + super(TestListSecurityGroupNetwork, self).setUp() + + self.network.security_groups = mock.Mock( + return_value=[self._security_group]) + + # Get the command object to test + self.cmd = security_group.ListSecurityGroup(self.app, self.namespace) + + def test_security_group_list_no_options(self): + arglist = [] + verifylist = [ + ('all_projects', False), + ] + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + + columns, data = self.cmd.take_action(parsed_args) + + self.network.security_groups.assert_called_with() + self.assertEqual(self.expected_columns, columns) + self.assertEqual(self.expected_data, tuple(data)) + + def test_security_group_list_all_projects(self): + arglist = [ + '--all-projects', + ] + verifylist = [ + ('all_projects', True), + ] + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + + columns, data = self.cmd.take_action(parsed_args) + + self.network.security_groups.assert_called_with() + self.assertEqual(self.expected_columns, columns) + self.assertEqual(self.expected_data, tuple(data)) + + +class TestListSecurityGroupCompute(TestSecurityGroupCompute): + + # The security group to be listed. + _security_group = \ + compute_fakes.FakeSecurityGroup.create_one_security_group() + + expected_columns = ( + 'ID', + 'Name', + 'Description', + ) + expected_columns_all_projects = ( + 'ID', + 'Name', + 'Description', + 'Project', + ) + + expected_data = (( + _security_group.id, + _security_group.name, + _security_group.description, + ),) + expected_data_all_projects = (( + _security_group.id, + _security_group.name, + _security_group.description, + _security_group.tenant_id, + ),) + + def setUp(self): + super(TestListSecurityGroupCompute, self).setUp() + + self.app.client_manager.network_endpoint_enabled = False + self.compute.security_groups.list.return_value = [self._security_group] + + # Get the command object to test + self.cmd = security_group.ListSecurityGroup(self.app, None) + + def test_security_group_list_no_options(self): + arglist = [] + verifylist = [ + ('all_projects', False), + ] + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + + columns, data = self.cmd.take_action(parsed_args) + + kwargs = {'search_opts': {'all_tenants': False}} + self.compute.security_groups.list.assert_called_with(**kwargs) + self.assertEqual(self.expected_columns, columns) + self.assertEqual(self.expected_data, tuple(data)) + + def test_security_group_list_all_projects(self): + arglist = [ + '--all-projects', + ] + verifylist = [ + ('all_projects', True), + ] + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + + columns, data = self.cmd.take_action(parsed_args) + + kwargs = {'search_opts': {'all_tenants': True}} + self.compute.security_groups.list.assert_called_with(**kwargs) + self.assertEqual(self.expected_columns_all_projects, columns) + self.assertEqual(self.expected_data_all_projects, tuple(data)) |
