utils/test_bgp: Add unit tests for Flow Specification
Signed-off-by: Shinpei Muraoka <shinpei.muraoka@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
This commit is contained in:
parent
9fa4e6b42d
commit
ab902d2b5e
85
ryu/tests/unit/services/protocols/bgp/utils/test_bgp.py
Normal file
85
ryu/tests/unit/services/protocols/bgp/utils/test_bgp.py
Normal file
@ -0,0 +1,85 @@
|
||||
# Copyright (C) 2017 Nippon Telegraph and Telephone Corporation.
|
||||
#
|
||||
# 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.
|
||||
|
||||
|
||||
import logging
|
||||
import unittest
|
||||
|
||||
from nose.tools import eq_, raises
|
||||
|
||||
from ryu.lib.packet.bgp import (
|
||||
BGPFlowSpecTrafficRateCommunity,
|
||||
BGPFlowSpecTrafficActionCommunity,
|
||||
BGPFlowSpecRedirectCommunity,
|
||||
BGPFlowSpecTrafficMarkingCommunity,
|
||||
)
|
||||
|
||||
from ryu.services.protocols.bgp.core import BgpCoreError
|
||||
from ryu.services.protocols.bgp.utils.bgp import create_v4flowspec_actions
|
||||
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class Test_Utils_BGP(unittest.TestCase):
|
||||
"""
|
||||
Test case for ryu.services.protocols.bgp.utils.bgp
|
||||
"""
|
||||
|
||||
def _test_create_v4flowspec_actions(self, actions, expected_communities):
|
||||
communities = create_v4flowspec_actions(actions)
|
||||
expected_communities.sort(key=lambda x: x.subtype)
|
||||
communities.sort(key=lambda x: x.subtype)
|
||||
eq_(str(expected_communities), str(communities))
|
||||
|
||||
def test_create_v4flowspec_actions_all_actions(self):
|
||||
actions = {
|
||||
'traffic_rate': {
|
||||
'as_number': 0,
|
||||
'rate_info': 100.0,
|
||||
},
|
||||
'traffic_action': {
|
||||
'action': 3,
|
||||
},
|
||||
'redirect': {
|
||||
'as_number': 10,
|
||||
'local_administrator': 10,
|
||||
},
|
||||
'traffic_marking': {
|
||||
'dscp': 24,
|
||||
}
|
||||
}
|
||||
expected_communities = [
|
||||
BGPFlowSpecTrafficRateCommunity(as_number=0, rate_info=100.0),
|
||||
BGPFlowSpecTrafficActionCommunity(action=3),
|
||||
BGPFlowSpecRedirectCommunity(as_number=10, local_administrator=10),
|
||||
BGPFlowSpecTrafficMarkingCommunity(dscp=24),
|
||||
]
|
||||
self._test_create_v4flowspec_actions(actions, expected_communities)
|
||||
|
||||
def test_create_v4flowspec_actions_without_actions(self):
|
||||
actions = None
|
||||
expected_communities = []
|
||||
self._test_create_v4flowspec_actions(actions, expected_communities)
|
||||
|
||||
@raises(ValueError)
|
||||
def test_create_v4flowspec_actions_not_exist_actions(self):
|
||||
actions = {
|
||||
'traffic_test': {
|
||||
'test': 10,
|
||||
},
|
||||
}
|
||||
expected_communities = []
|
||||
self._test_create_v4flowspec_actions(actions, expected_communities)
|
Loading…
Reference in New Issue
Block a user