python-neutronclient/neutronclient/tests/unit/osc/v2/dynamic_routing/test_bgp_speaker.py

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)