summaryrefslogtreecommitdiff
path: root/openstackclient/tests/unit
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2016-12-19 14:31:10 +0000
committerGerrit Code Review <review@openstack.org>2016-12-19 14:31:11 +0000
commite51a2b3b171f3c72a715bee3ad99c0f88efa3010 (patch)
treecc398674bbad98c2396594de3890aa40b6a04c11 /openstackclient/tests/unit
parent25c563d0d8e1b9cc5d9bcafa93b33628e29aed58 (diff)
parent841d9d8dbd313b3dcf604466786d6b9a5c918156 (diff)
downloadpython-openstackclient-e51a2b3b171f3c72a715bee3ad99c0f88efa3010.tar.gz
Merge "Add support for setting router gateway"
Diffstat (limited to 'openstackclient/tests/unit')
-rw-r--r--openstackclient/tests/unit/network/v2/test_router.py112
1 files changed, 109 insertions, 3 deletions
diff --git a/openstackclient/tests/unit/network/v2/test_router.py b/openstackclient/tests/unit/network/v2/test_router.py
index 8c1d5804..9183cb63 100644
--- a/openstackclient/tests/unit/network/v2/test_router.py
+++ b/openstackclient/tests/unit/network/v2/test_router.py
@@ -602,17 +602,19 @@ class TestSetRouter(TestRouter):
# The router to set.
_default_route = {'destination': '10.20.20.0/24', 'nexthop': '10.20.30.1'}
+ _network = network_fakes.FakeNetwork.create_one_network()
+ _subnet = network_fakes.FakeSubnet.create_one_subnet()
_router = network_fakes.FakeRouter.create_one_router(
attrs={'routes': [_default_route]}
)
def setUp(self):
super(TestSetRouter, self).setUp()
-
+ self.network.router_add_gateway = mock.Mock()
self.network.update_router = mock.Mock(return_value=None)
-
self.network.find_router = mock.Mock(return_value=self._router)
-
+ self.network.find_network = mock.Mock(return_value=self._network)
+ self.network.find_subnet = mock.Mock(return_value=self._subnet)
# Get the command object to test
self.cmd = router.SetRouter(self.app, self.namespace)
@@ -799,6 +801,110 @@ class TestSetRouter(TestRouter):
self._router, **attrs)
self.assertIsNone(result)
+ def test_wrong_gateway_params(self):
+ arglist = [
+ "--fixed-ip", "subnet='abc'",
+ self._router.id,
+ ]
+ verifylist = [
+ ('fixed_ip', [{'subnet': "'abc'"}]),
+ ('router', self._router.id),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+ self.assertRaises(exceptions.CommandError,
+ self.cmd.take_action, parsed_args)
+
+ def test_set_gateway_network_only(self):
+ arglist = [
+ "--external-gateway", self._network.id,
+ self._router.id,
+ ]
+ verifylist = [
+ ('external_gateway', self._network.id),
+ ('router', self._router.id),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ result = self.cmd.take_action(parsed_args)
+ self.network.update_router.assert_called_with(
+ self._router, **{'external_gateway_info': {
+ 'network_id': self._network.id}})
+ self.assertIsNone(result)
+
+ def test_set_gateway_options_subnet_only(self):
+ arglist = [
+ "--external-gateway", self._network.id,
+ "--fixed-ip", "subnet='abc'",
+ self._router.id,
+ '--enable-snat',
+ ]
+ verifylist = [
+ ('router', self._router.id),
+ ('external_gateway', self._network.id),
+ ('fixed_ip', [{'subnet': "'abc'"}]),
+ ('enable_snat', True),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ result = self.cmd.take_action(parsed_args)
+ self.network.update_router.assert_called_with(
+ self._router, **{'external_gateway_info': {
+ 'network_id': self._network.id,
+ 'external_fixed_ips': [{
+ 'subnet_id': self._subnet.id, }],
+ 'enable_snat': True, }})
+ self.assertIsNone(result)
+
+ def test_set_gateway_option_ipaddress_only(self):
+ arglist = [
+ "--external-gateway", self._network.id,
+ "--fixed-ip", "ip-address=10.0.1.1",
+ self._router.id,
+ '--enable-snat',
+ ]
+ verifylist = [
+ ('router', self._router.id),
+ ('external_gateway', self._network.id),
+ ('fixed_ip', [{'ip-address': "10.0.1.1"}]),
+ ('enable_snat', True),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ result = self.cmd.take_action(parsed_args)
+ self.network.update_router.assert_called_with(
+ self._router, **{'external_gateway_info': {
+ 'network_id': self._network.id,
+ 'external_fixed_ips': [{
+ 'ip_address': "10.0.1.1", }],
+ 'enable_snat': True, }})
+ self.assertIsNone(result)
+
+ def test_set_gateway_options_subnet_ipaddress(self):
+ arglist = [
+ "--external-gateway", self._network.id,
+ "--fixed-ip", "subnet='abc',ip-address=10.0.1.1",
+ self._router.id,
+ '--enable-snat',
+ ]
+ verifylist = [
+ ('router', self._router.id),
+ ('external_gateway', self._network.id),
+ ('fixed_ip', [{'subnet': "'abc'",
+ 'ip-address': "10.0.1.1"}]),
+ ('enable_snat', True),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ result = self.cmd.take_action(parsed_args)
+ self.network.update_router.assert_called_with(
+ self._router, **{'external_gateway_info': {
+ 'network_id': self._network.id,
+ 'external_fixed_ips': [{
+ 'subnet_id': self._subnet.id,
+ 'ip_address': "10.0.1.1", }],
+ 'enable_snat': True, }})
+ self.assertIsNone(result)
+
class TestShowRouter(TestRouter):