158 lines
5.1 KiB
Python
158 lines
5.1 KiB
Python
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain
|
|
# a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
#
|
|
from unittest import mock
|
|
|
|
from neutronclient.osc.v2.dynamic_routing import bgp_speaker
|
|
from neutronclient.tests.unit.osc.v2.dynamic_routing import fakes
|
|
|
|
|
|
class TestListBgpSpeaker(fakes.TestNeutronDynamicRoutingOSCV2):
|
|
_bgp_speakers = fakes.FakeBgpSpeaker.create_bgp_speakers()
|
|
columns = ('ID', 'Name', 'Local AS', 'IP Version')
|
|
data = []
|
|
for _bgp_speaker in _bgp_speakers['bgp_speakers']:
|
|
data.append((
|
|
_bgp_speaker['id'],
|
|
_bgp_speaker['name'],
|
|
_bgp_speaker['local_as'],
|
|
_bgp_speaker['ip_version']))
|
|
|
|
def setUp(self):
|
|
super(TestListBgpSpeaker, self).setUp()
|
|
|
|
self.neutronclient.list_bgp_speakers = mock.Mock(
|
|
return_value=self._bgp_speakers
|
|
)
|
|
|
|
# Get the command object to test
|
|
self.cmd = bgp_speaker.ListBgpSpeaker(self.app, self.namespace)
|
|
|
|
def test_bgp_speaker_list(self):
|
|
parsed_args = self.check_parser(self.cmd, [], [])
|
|
|
|
columns, data = self.cmd.take_action(parsed_args)
|
|
self.neutronclient.list_bgp_speakers.assert_called_once_with()
|
|
self.assertEqual(self.columns, columns)
|
|
self.assertEqual(self.data, list(data))
|
|
|
|
|
|
class TestDeleteBgpSpeaker(fakes.TestNeutronDynamicRoutingOSCV2):
|
|
|
|
_bgp_speaker = fakes.FakeBgpSpeaker.create_one_bgp_speaker()
|
|
|
|
def setUp(self):
|
|
super(TestDeleteBgpSpeaker, self).setUp()
|
|
|
|
self.neutronclient.delete_bgp_speaker = mock.Mock(return_value=None)
|
|
|
|
self.cmd = bgp_speaker.DeleteBgpSpeaker(self.app, self.namespace)
|
|
|
|
def test_delete_bgp_speaker(self):
|
|
arglist = [
|
|
self._bgp_speaker['name'],
|
|
]
|
|
verifylist = [
|
|
('bgp_speaker', self._bgp_speaker['name']),
|
|
]
|
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
|
|
result = self.cmd.take_action(parsed_args)
|
|
|
|
self.neutronclient.delete_bgp_speaker.assert_called_once_with(
|
|
self._bgp_speaker['name'])
|
|
self.assertIsNone(result)
|
|
|
|
|
|
class TestShowBgpSpeaker(fakes.TestNeutronDynamicRoutingOSCV2):
|
|
_one_bgp_speaker = fakes.FakeBgpSpeaker.create_one_bgp_speaker()
|
|
data = (
|
|
_one_bgp_speaker['advertise_floating_ip_host_routes'],
|
|
_one_bgp_speaker['advertise_tenant_networks'],
|
|
_one_bgp_speaker['id'],
|
|
_one_bgp_speaker['ip_version'],
|
|
_one_bgp_speaker['local_as'],
|
|
_one_bgp_speaker['name'],
|
|
_one_bgp_speaker['networks'],
|
|
_one_bgp_speaker['peers'],
|
|
_one_bgp_speaker['tenant_id']
|
|
)
|
|
_bgp_speaker = {'bgp_speaker': _one_bgp_speaker}
|
|
_bgp_speaker_name = _one_bgp_speaker['name']
|
|
columns = (
|
|
'advertise_floating_ip_host_routes',
|
|
'advertise_tenant_networks',
|
|
'id',
|
|
'ip_version',
|
|
'local_as',
|
|
'name',
|
|
'networks',
|
|
'peers',
|
|
'tenant_id'
|
|
)
|
|
|
|
def setUp(self):
|
|
super(TestShowBgpSpeaker, self).setUp()
|
|
|
|
self.neutronclient.show_bgp_speaker = mock.Mock(
|
|
return_value=self._bgp_speaker
|
|
)
|
|
# Get the command object to test
|
|
self.cmd = bgp_speaker.ShowBgpSpeaker(self.app, self.namespace)
|
|
|
|
def test_bgp_speaker_show(self):
|
|
arglist = [
|
|
self._bgp_speaker_name,
|
|
]
|
|
verifylist = [
|
|
('bgp_speaker', self._bgp_speaker_name),
|
|
]
|
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
|
|
data = self.cmd.take_action(parsed_args)
|
|
self.neutronclient.show_bgp_speaker.assert_called_once_with(
|
|
self._bgp_speaker_name)
|
|
self.assertEqual(self.columns, data[0])
|
|
self.assertEqual(self.data, data[1])
|
|
|
|
|
|
class TestSetBgpSpeaker(fakes.TestNeutronDynamicRoutingOSCV2):
|
|
_one_bgp_speaker = fakes.FakeBgpSpeaker.create_one_bgp_speaker()
|
|
_bgp_speaker_name = _one_bgp_speaker['name']
|
|
|
|
def setUp(self):
|
|
super(TestSetBgpSpeaker, self).setUp()
|
|
self.neutronclient.update_bgp_speaker = mock.Mock(
|
|
return_value=None)
|
|
|
|
self.cmd = bgp_speaker.SetBgpSpeaker(self.app, self.namespace)
|
|
|
|
def test_set_bgp_speaker(self):
|
|
arglist = [
|
|
self._bgp_speaker_name,
|
|
'--name', 'noob',
|
|
]
|
|
verifylist = [
|
|
('bgp_speaker', self._bgp_speaker_name),
|
|
('name', 'noob'),
|
|
]
|
|
|
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
result = self.cmd.take_action(parsed_args)
|
|
|
|
attrs = {'bgp_speaker': {
|
|
'name': 'noob'}
|
|
}
|
|
self.neutronclient.update_bgp_speaker.assert_called_once_with(
|
|
self._bgp_speaker_name, attrs)
|
|
self.assertIsNone(result)
|