From 9c473f475d2bb7adadc65a7525b93db84f10bef9 Mon Sep 17 00:00:00 2001 From: Ha Van Tu Date: Thu, 18 Aug 2016 15:07:47 +0700 Subject: Add filtering options to os network list command This patch adds the following filtering options: '--name', '--internal', '--share' and '--no-share', '--enable' and '--disable', '--project' and '--project-domain', '--status'. Change-Id: I7e9dd372ee572c6ee8cdba7fac3182f9dc0a137b Partially-Implements: blueprint network-commands-options Closes-Bug: #1578819 --- .../tests/unit/network/v2/test_network.py | 162 +++++++++++++++++++++ 1 file changed, 162 insertions(+) (limited to 'openstackclient/tests') diff --git a/openstackclient/tests/unit/network/v2/test_network.py b/openstackclient/tests/unit/network/v2/test_network.py index 84ead093..9a375645 100644 --- a/openstackclient/tests/unit/network/v2/test_network.py +++ b/openstackclient/tests/unit/network/v2/test_network.py @@ -13,6 +13,7 @@ import mock from mock import call +import random from osc_lib import exceptions from osc_lib import utils @@ -491,6 +492,23 @@ class TestListNetwork(TestNetwork): self.assertEqual(self.columns, columns) self.assertEqual(self.data, list(data)) + def test_list_internal(self): + arglist = [ + '--internal', + ] + verifylist = [ + ('internal', True), + ('long', False), + ] + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + columns, data = self.cmd.take_action(parsed_args) + + self.network.networks.assert_called_once_with( + **{'router:external': False} + ) + self.assertEqual(self.columns, columns) + self.assertEqual(self.data, list(data)) + def test_network_list_long(self): arglist = [ '--long', @@ -510,6 +528,150 @@ class TestListNetwork(TestNetwork): self.assertEqual(self.columns_long, columns) self.assertEqual(self.data_long, list(data)) + def test_list_name(self): + test_name = "fakename" + arglist = [ + '--name', test_name, + ] + verifylist = [ + ('external', False), + ('long', False), + ('name', test_name), + ] + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + columns, data = self.cmd.take_action(parsed_args) + + self.network.networks.assert_called_once_with( + **{'name': test_name} + ) + self.assertEqual(self.columns, columns) + self.assertEqual(self.data, list(data)) + + def test_network_list_enable(self): + arglist = [ + '--enable', + ] + verifylist = [ + ('long', False), + ('external', False), + ('enable', True), + ] + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + columns, data = self.cmd.take_action(parsed_args) + + self.network.networks.assert_called_once_with( + **{'admin_state_up': True} + ) + self.assertEqual(self.columns, columns) + self.assertEqual(self.data, list(data)) + + def test_network_list_disable(self): + arglist = [ + '--disable', + ] + verifylist = [ + ('long', False), + ('external', False), + ('disable', True) + ] + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + columns, data = self.cmd.take_action(parsed_args) + + self.network.networks.assert_called_once_with( + **{'admin_state_up': False} + ) + self.assertEqual(self.columns, columns) + self.assertEqual(self.data, list(data)) + + def test_network_list_project(self): + project = identity_fakes_v3.FakeProject.create_one_project() + self.projects_mock.get.return_value = project + arglist = [ + '--project', project.id, + ] + verifylist = [ + ('project', project.id), + ] + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + + columns, data = self.cmd.take_action(parsed_args) + self.network.networks.assert_called_once_with( + **{'tenant_id': project.id} + ) + + self.assertEqual(self.columns, columns) + self.assertEqual(self.data, list(data)) + + def test_networ_list_project_domain(self): + project = identity_fakes_v3.FakeProject.create_one_project() + self.projects_mock.get.return_value = project + arglist = [ + '--project', project.id, + '--project-domain', project.domain_id, + ] + verifylist = [ + ('project', project.id), + ] + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + + columns, data = self.cmd.take_action(parsed_args) + filters = {'tenant_id': project.id} + + self.network.networks.assert_called_once_with(**filters) + + def test_network_list_share(self): + arglist = [ + '--share', + ] + verifylist = [ + ('long', False), + ('share', True), + ] + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + columns, data = self.cmd.take_action(parsed_args) + + self.network.networks.assert_called_once_with( + **{'shared': True} + ) + self.assertEqual(self.columns, columns) + self.assertEqual(self.data, list(data)) + + def test_network_list_no_share(self): + arglist = [ + '--no-share', + ] + verifylist = [ + ('long', False), + ('no_share', True), + ] + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + columns, data = self.cmd.take_action(parsed_args) + + self.network.networks.assert_called_once_with( + **{'shared': False} + ) + self.assertEqual(self.columns, columns) + self.assertEqual(self.data, list(data)) + + def test_network_list_status(self): + choices = ['ACTIVE', 'BUILD', 'DOWN', 'ERROR'] + test_status = random.choice(choices) + arglist = [ + '--status', test_status, + ] + verifylist = [ + ('long', False), + ('status', test_status), + ] + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + columns, data = self.cmd.take_action(parsed_args) + + self.network.networks.assert_called_once_with( + **{'status': test_status} + ) + self.assertEqual(self.columns, columns) + self.assertEqual(self.data, list(data)) + class TestSetNetwork(TestNetwork): -- cgit v1.2.1