diff options
| author | Jenkins <jenkins@review.openstack.org> | 2016-02-18 09:03:49 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2016-02-18 09:03:49 +0000 |
| commit | 36b21461d9c09883b7c8c07d51204cd98f90d298 (patch) | |
| tree | c687c6e16289dd32f24e73a13ec57d3e6f78945a /openstackclient/tests | |
| parent | bb153b705a14c2fbf9b3a0936f8a7ca4c56895e3 (diff) | |
| parent | ddc97c6dc5bc36d678515aeb9f7b3f9e85bd70d0 (diff) | |
| download | python-openstackclient-36b21461d9c09883b7c8c07d51204cd98f90d298.tar.gz | |
Merge "Support "network list" command in nova network"
Diffstat (limited to 'openstackclient/tests')
| -rw-r--r-- | openstackclient/tests/compute/v2/fakes.py | 58 | ||||
| -rw-r--r-- | openstackclient/tests/network/v2/test_network.py | 53 |
2 files changed, 108 insertions, 3 deletions
diff --git a/openstackclient/tests/compute/v2/fakes.py b/openstackclient/tests/compute/v2/fakes.py index a1c42b45..26c6eaee 100644 --- a/openstackclient/tests/compute/v2/fakes.py +++ b/openstackclient/tests/compute/v2/fakes.py @@ -587,3 +587,61 @@ class FakeFloatingIP(object): if floating_ips is None: floating_ips = FakeFloatingIP.create_floating_ips(count) return mock.MagicMock(side_effect=floating_ips) + + +class FakeNetwork(object): + """Fake one or more networks.""" + + @staticmethod + def create_one_network(attrs={}, methods={}): + """Create a fake network. + + :param Dictionary attrs: + A dictionary with all attributes + :param Dictionary methods: + A dictionary with all methods + :return: + A FakeResource object, with id, label, cidr + """ + # Set default attributes. + network_attrs = { + 'id': 'network-id-' + uuid.uuid4().hex, + 'label': 'network-label-' + uuid.uuid4().hex, + 'cidr': '10.0.0.0/24', + } + + # Overwrite default attributes. + network_attrs.update(attrs) + + # Set default methods. + network_methods = { + 'keys': ['id', 'label', 'cidr'], + } + + # Overwrite default methods. + network_methods.update(methods) + + network = fakes.FakeResource(info=copy.deepcopy(network_attrs), + methods=copy.deepcopy(network_methods), + loaded=True) + + return network + + @staticmethod + def create_networks(attrs={}, methods={}, count=2): + """Create multiple fake networks. + + :param Dictionary attrs: + A dictionary with all attributes + :param Dictionary methods: + A dictionary with all methods + :param int count: + The number of networks to fake + :return: + A list of FakeResource objects faking the networks + """ + networks = [] + for i in range(0, count): + networks.append(FakeNetwork.create_one_network(attrs, methods)) + + return networks diff --git a/openstackclient/tests/network/v2/test_network.py b/openstackclient/tests/network/v2/test_network.py index f7721951..c83e7e84 100644 --- a/openstackclient/tests/network/v2/test_network.py +++ b/openstackclient/tests/network/v2/test_network.py @@ -579,7 +579,7 @@ class TestNetworkCompute(compute_fakes.TestComputev2): class TestDeleteNetworkCompute(TestNetworkCompute): # The network to delete. - _network = network_fakes.FakeNetwork.create_one_network() + _network = compute_fakes.FakeNetwork.create_one_network() def setUp(self): super(TestDeleteNetworkCompute, self).setUp() @@ -596,10 +596,10 @@ class TestDeleteNetworkCompute(TestNetworkCompute): def test_network_delete(self): arglist = [ - self._network.name, + self._network.label, ] verifylist = [ - ('network', [self._network.name]), + ('network', [self._network.label]), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -607,3 +607,50 @@ class TestDeleteNetworkCompute(TestNetworkCompute): self.compute.networks.delete.assert_called_with(self._network.id) self.assertIsNone(result) + + +class TestListNetworkCompute(TestNetworkCompute): + + # The networks going to be listed up. + _networks = compute_fakes.FakeNetwork.create_networks(count=3) + + columns = ( + 'ID', + 'Name', + 'Subnet', + ) + + data = [] + for net in _networks: + data.append(( + net.id, + net.label, + net.cidr, + )) + + def setUp(self): + super(TestListNetworkCompute, self).setUp() + + self.app.client_manager.network_endpoint_enabled = False + + self.compute.networks.list.return_value = self._networks + + # Get the command object to test + self.cmd = network.ListNetwork(self.app, None) + + def test_network_list_no_options(self): + arglist = [] + verifylist = [ + ('external', False), + ('long', False), + ] + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + + # In base command class Lister in cliff, abstract method take_action() + # returns a tuple containing the column names and an iterable + # containing the data to be listed. + columns, data = self.cmd.take_action(parsed_args) + + self.compute.networks.list.assert_called_with() + self.assertEqual(self.columns, columns) + self.assertEqual(self.data, list(data)) |
