test_bgpspeaker: Add unit tests for IPv6 Flow Spec

Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
This commit is contained in:
Satoshi Fujimoto 2017-05-09 16:09:46 +09:00 committed by FUJITA Tomonori
parent bb38fb2f30
commit c53605385e
1 changed files with 153 additions and 0 deletions

View File

@ -867,3 +867,156 @@ class Test_BGPSpeaker(unittest.TestCase):
# Check
mock_call.assert_called_with(
'flowspec.del_local', **expected_kwargs)
@mock.patch(
'ryu.services.protocols.bgp.bgpspeaker.BGPSpeaker.__init__',
mock.MagicMock(return_value=None))
@mock.patch('ryu.services.protocols.bgp.bgpspeaker.call')
def test_flowspec_prefix_add_ipv6(self, mock_call):
# Prepare test data
flowspec_family = bgpspeaker.FLOWSPEC_FAMILY_IPV6
rules = {
'dst_prefix': '2001::3/128/32',
}
actions = {
'traffic_marking': {
'dscp': 24,
}
}
expected_kwargs = {
'flowspec_family': flowspec_family,
'rules': rules,
'actions': actions,
}
# Test
speaker = bgpspeaker.BGPSpeaker(65000, '10.0.0.1')
speaker.flowspec_prefix_add(
flowspec_family=flowspec_family,
rules=rules,
actions=actions)
# Check
mock_call.assert_called_with(
'flowspec.add', **expected_kwargs)
@mock.patch(
'ryu.services.protocols.bgp.bgpspeaker.BGPSpeaker.__init__',
mock.MagicMock(return_value=None))
@mock.patch('ryu.services.protocols.bgp.bgpspeaker.call')
def test_flowspec_prefix_add_ipv6_without_actions(self, mock_call):
# Prepare test data
flowspec_family = bgpspeaker.FLOWSPEC_FAMILY_IPV6
rules = {
'dst_prefix': '2001::3/128/32',
}
expected_kwargs = {
'flowspec_family': flowspec_family,
'rules': rules,
'actions': {},
}
# Test
speaker = bgpspeaker.BGPSpeaker(65000, '10.0.0.1')
speaker.flowspec_prefix_add(
flowspec_family=flowspec_family,
rules=rules)
# Check
mock_call.assert_called_with(
'flowspec.add', **expected_kwargs)
@mock.patch(
'ryu.services.protocols.bgp.bgpspeaker.BGPSpeaker.__init__',
mock.MagicMock(return_value=None))
@mock.patch('ryu.services.protocols.bgp.bgpspeaker.call')
def test_flowspec_prefix_del_ipv6(self, mock_call):
# Prepare test data
flowspec_family = bgpspeaker.FLOWSPEC_FAMILY_IPV6
rules = {
'dst_prefix': '2001::3/128/32',
}
expected_kwargs = {
'flowspec_family': flowspec_family,
'rules': rules,
}
# Test
speaker = bgpspeaker.BGPSpeaker(65000, '10.0.0.1')
speaker.flowspec_prefix_del(
flowspec_family=flowspec_family,
rules=rules)
# Check
mock_call.assert_called_with(
'flowspec.del', **expected_kwargs)
@mock.patch(
'ryu.services.protocols.bgp.bgpspeaker.BGPSpeaker.__init__',
mock.MagicMock(return_value=None))
@mock.patch('ryu.services.protocols.bgp.bgpspeaker.call')
def test_flowspec_prefix_add_vpnv6(self, mock_call):
# Prepare test data
flowspec_family = bgpspeaker.FLOWSPEC_FAMILY_VPNV6
route_dist = '65001:100'
rules = {
'dst_prefix': '2001::3/128/32',
}
actions = {
'traffic_marking': {
'dscp': 24,
}
}
expected_kwargs = {
'flowspec_family': flowspec_family,
'route_dist': route_dist,
'rules': rules,
'actions': actions,
}
# Test
speaker = bgpspeaker.BGPSpeaker(65000, '10.0.0.1')
speaker.flowspec_prefix_add(
flowspec_family=flowspec_family,
route_dist=route_dist,
rules=rules,
actions=actions)
# Check
mock_call.assert_called_with(
'flowspec.add_local', **expected_kwargs)
@mock.patch(
'ryu.services.protocols.bgp.bgpspeaker.BGPSpeaker.__init__',
mock.MagicMock(return_value=None))
@mock.patch('ryu.services.protocols.bgp.bgpspeaker.call')
def test_flowspec_prefix_del_vpnv6(self, mock_call):
# Prepare test data
flowspec_family = bgpspeaker.FLOWSPEC_FAMILY_VPNV6
route_dist = '65001:100'
rules = {
'dst_prefix': '2001::3/128/32',
}
expected_kwargs = {
'flowspec_family': flowspec_family,
'route_dist': route_dist,
'rules': rules,
}
# Test
speaker = bgpspeaker.BGPSpeaker(65000, '10.0.0.1')
speaker.flowspec_prefix_del(
flowspec_family=flowspec_family,
route_dist=route_dist,
rules=rules)
# Check
mock_call.assert_called_with(
'flowspec.del_local', **expected_kwargs)