Signed-off-by: Minoru TAKAHASHI <takahashi.mino...@gmail.com>
---
 ryu/tests/unit/lib/test_ofctl.py | 158 ++++++++++++++++++---------------------
 1 file changed, 71 insertions(+), 87 deletions(-)

diff --git a/ryu/tests/unit/lib/test_ofctl.py b/ryu/tests/unit/lib/test_ofctl.py
index a98b4ba..27fb44b 100644
--- a/ryu/tests/unit/lib/test_ofctl.py
+++ b/ryu/tests/unit/lib/test_ofctl.py
@@ -399,14 +399,31 @@ class Test_ofctl(unittest.TestCase):
 
         return field_value
 
-""" Test_data for of_v1_0 """
 
+class test_data_base(object):
+    # followings must be an attribute of subclass.
+    # _ofctl
+    # _ofproto
 
-class test_data_v1_0():
+    def __init__(self):
+        self.ver = self._ofproto.OFP_VERSION
+        self.to_match = self._ofctl.to_match
+        self.match_to_str = self._ofctl.match_to_str
+        self.to_actions = self._ofctl.to_actions
+        self.actions_to_str = self._ofctl.actions_to_str
+
+
+class test_data_v1_0(test_data_base):
+    """ Test_data for of_v1_0 """
+    _ofctl = ofctl_v1_0
+    _ofproto = ofproto_v1_0
+    _parser = ofproto_v1_0_parser
 
     def __init__(self):
+        super(test_data_v1_0, self).__init__()
+        self.nw_src_to_str = self._ofctl.nw_src_to_str
+        self.nw_dst_to_str = self._ofctl.nw_dst_to_str
         self.supported_action = {}
-        self.supported_match = {}
         self.act_list = [
             {'type': 'OUTPUT', 'port': 3},
             {'type': 'SET_VLAN_VID', 'vlan_vid': 5},
@@ -437,47 +454,35 @@ class test_data_v1_0():
             {'tp_src': 1},
             {'tp_dst': 2}
         ]
+        self.set_action()
 
-    def set_ver(self, ver):
-        self.ver = ver
-
-    def set_attr(self, ofctl):
-        self.to_match = getattr(ofctl, "to_match")
-        self.match_to_str = getattr(ofctl, "match_to_str")
-        self.to_actions = getattr(ofctl, "to_actions")
-        self.actions_to_str = getattr(ofctl, "actions_to_str")
-        self.nw_src_to_str = getattr(ofctl, "nw_src_to_str")
-        self.nw_dst_to_str = getattr(ofctl, "nw_dst_to_str")
-
-    def set_expected_value(self, ofproto):
-        pass
-
-    def set_action_v1_0(self, parser):
+    def set_action(self):
         self.supported_action.update(
             {
-                'OUTPUT': getattr(parser, "OFPActionOutput"),
-                'SET_VLAN_VID': getattr(parser, "OFPActionVlanVid"),
-                'SET_VLAN_PCP': getattr(parser, "OFPActionVlanPcp"),
-                'STRIP_VLAN': getattr(parser, "OFPActionStripVlan"),
-                'SET_DL_SRC': getattr(parser, "OFPActionSetDlSrc"),
-                'SET_DL_DST': getattr(parser, "OFPActionSetDlDst"),
-                'SET_NW_SRC': getattr(parser, "OFPActionSetNwSrc"),
-                'SET_NW_DST': getattr(parser, "OFPActionSetNwDst"),
-                'SET_NW_TOS': getattr(parser, "OFPActionSetNwTos"),
-                'SET_TP_SRC': getattr(parser, "OFPActionSetTpSrc"),
-                'SET_TP_DST': getattr(parser, "OFPActionSetTpDst"),
-                'ENQUEUE': getattr(parser, "OFPActionEnqueue")
+                'OUTPUT': self._parser.OFPActionOutput,
+                'SET_VLAN_VID': self._parser.OFPActionVlanVid,
+                'SET_VLAN_PCP': self._parser.OFPActionVlanPcp,
+                'STRIP_VLAN': self._parser.OFPActionStripVlan,
+                'SET_DL_SRC': self._parser.OFPActionSetDlSrc,
+                'SET_DL_DST': self._parser.OFPActionSetDlDst,
+                'SET_NW_SRC': self._parser.OFPActionSetNwSrc,
+                'SET_NW_DST': self._parser.OFPActionSetNwDst,
+                'SET_NW_TOS': self._parser.OFPActionSetNwTos,
+                'SET_TP_SRC': self._parser.OFPActionSetTpSrc,
+                'SET_TP_DST': self._parser.OFPActionSetTpDst,
+                'ENQUEUE': self._parser.OFPActionEnqueue
             })
 
 
-""" Test_data for of_v1_2 """
-
-
-class test_data_v1_2(test_data_v1_0):
+class test_data_v1_2(test_data_base):
+    """ Test_data for of_v1_2 """
+    _ofctl = ofctl_v1_2
+    _ofproto = ofproto_v1_2
+    _parser = ofproto_v1_2_parser
 
     def __init__(self):
+        super(test_data_v1_2, self).__init__()
         self.supported_action = {}
-        self.supported_match = {}
         self.act_list = [
             {'type': 'OUTPUT', 'port': 3},
             {'type': 'COPY_TTL_OUT'},
@@ -611,15 +616,29 @@ class test_data_v1_2(test_data_v1_0):
             {'mpls_label': 3, 'eth_type': 0x8848},
             {'mpls_tc': 2, 'eth_type': 0x8848}
         ]
+        self.supported_action.update(
+            {
+                'OUTPUT': self._parser.OFPActionOutput,
+                'COPY_TTL_OUT': self._parser.OFPActionCopyTtlOut,
+                'COPY_TTL_IN': self._parser.OFPActionCopyTtlIn,
+                'SET_MPLS_TTL': self._parser.OFPActionSetMplsTtl,
+                'DEC_MPLS_TTL': self._parser.OFPActionDecMplsTtl,
+                'PUSH_VLAN': self._parser.OFPActionPushVlan,
+                'POP_VLAN': self._parser.OFPActionPopVlan,
+                'PUSH_MPLS': self._parser.OFPActionPushMpls,
+                'POP_MPLS': self._parser.OFPActionPopMpls,
+                'SET_QUEUE': self._parser.OFPActionSetQueue,
+                'GROUP': self._parser.OFPActionGroup,
+                'SET_NW_TTL': self._parser.OFPActionSetNwTtl,
+                'DEC_NW_TTL': self._parser.OFPActionDecNwTtl,
+                'SET_FIELD': self._parser.OFPActionSetField,
+                'GOTO_TABLE': self._parser.OFPInstructionGotoTable,
+                'WRITE_METADATA': self._parser.OFPInstructionWriteMetadata,
+            })
+        self.set_expected_value()
 
-    def set_attr(self, ofctl):
-        self.to_match = getattr(ofctl, "to_match")
-        self.match_to_str = getattr(ofctl, "match_to_str")
-        self.to_actions = getattr(ofctl, "to_actions")
-        self.actions_to_str = getattr(ofctl, "actions_to_str")
-
-    def set_expected_value(self, ofproto):
-        vid_present = ofproto.OFPVID_PRESENT
+    def set_expected_value(self):
+        vid_present = self._ofproto.OFPVID_PRESENT
         self.expected_value = {
             "vlan_vid": {
                 0: {"to_match": 0 | vid_present, "to_str": "0"},
@@ -657,36 +676,15 @@ class test_data_v1_2(test_data_v1_0):
             }
         }
 
-    def set_action_v1_2(self, parser):
-        self.supported_action.update(
-            {
-                'OUTPUT': getattr(parser, "OFPActionOutput"),
-                'COPY_TTL_OUT': getattr(parser, "OFPActionCopyTtlOut"),
-                'COPY_TTL_IN': getattr(parser, "OFPActionCopyTtlIn"),
-                'SET_MPLS_TTL': getattr(parser, "OFPActionSetMplsTtl"),
-                'DEC_MPLS_TTL': getattr(parser, "OFPActionDecMplsTtl"),
-                'PUSH_VLAN': getattr(parser, "OFPActionPushVlan"),
-                'POP_VLAN': getattr(parser, "OFPActionPopVlan"),
-                'PUSH_MPLS': getattr(parser, "OFPActionPushMpls"),
-                'POP_MPLS': getattr(parser, "OFPActionPopMpls"),
-                'SET_QUEUE': getattr(parser, "OFPActionSetQueue"),
-                'GROUP': getattr(parser, "OFPActionGroup"),
-                'SET_NW_TTL': getattr(parser, "OFPActionSetNwTtl"),
-                'DEC_NW_TTL': getattr(parser, "OFPActionDecNwTtl"),
-                'SET_FIELD': getattr(parser, "OFPActionSetField"),
-                'GOTO_TABLE': getattr(parser, "OFPInstructionGotoTable"),
-                'WRITE_METADATA': getattr(parser,
-                                          "OFPInstructionWriteMetadata"),
-            })
-
-
-""" Test_data for of_v1_3 """
-
 
 class test_data_v1_3(test_data_v1_2):
+    """ Test_data for of_v1_3 """
+    _ofctl = ofctl_v1_3
+    _ofproto = ofproto_v1_3
+    _parser = ofproto_v1_3_parser
 
     def __init__(self):
-        test_data_v1_2.__init__(self)
+        super(test_data_v1_3, self).__init__()
         self.act_list.extend(
             [
                 {'type': 'PUSH_PBB', 'ethertype': 0x0800},
@@ -704,15 +702,13 @@ class test_data_v1_3(test_data_v1_2):
                 {'ipv6_exthdr': "0x40/0x1F0", 'eth_type': 0x86dd},
             ]
         )
-
-    def set_action_v1_3(self, parser):
-        self.set_action_v1_2(parser)
         self.supported_action.update(
             {
-                'PUSH_PBB': getattr(parser, "OFPActionPushPbb"),
-                'POP_PBB': getattr(parser, "OFPActionPopPbb"),
-                'METER': getattr(parser, "OFPInstructionMeter"),
+                'PUSH_PBB': self._parser.OFPActionPushPbb,
+                'POP_PBB': self._parser.OFPActionPopPbb,
+                'METER': self._parser.OFPInstructionMeter,
             })
+        self.set_expected_value()
 
 
 def _add_tests_actions(cls):
@@ -753,27 +749,15 @@ def _add_tests_match(cls):
 
 # for of10
 cls = test_data_v1_0()
-cls.set_action_v1_0(ofproto_v1_0_parser)
-cls.set_ver(ofproto_v1_0.OFP_VERSION)
-cls.set_attr(ofctl_v1_0)
-cls.set_expected_value(ofproto_v1_0)
 _add_tests_actions(cls)
 _add_tests_match(cls)
 
 # for of12
 cls = test_data_v1_2()
-cls.set_action_v1_2(ofproto_v1_2_parser)
-cls.set_ver(ofproto_v1_2.OFP_VERSION)
-cls.set_attr(ofctl_v1_2)
-cls.set_expected_value(ofproto_v1_2)
 _add_tests_actions(cls)
 _add_tests_match(cls)
 
 # for of13
 cls = test_data_v1_3()
-cls.set_action_v1_3(ofproto_v1_3_parser)
-cls.set_ver(ofproto_v1_3.OFP_VERSION)
-cls.set_attr(ofctl_v1_3)
-cls.set_expected_value(ofproto_v1_3)
 _add_tests_actions(cls)
 _add_tests_match(cls)
-- 
1.9.1


------------------------------------------------------------------------------
Don't Limit Your Business. Reach for the Cloud.
GigeNET's Cloud Solutions provide you with the tools and support that
you need to offload your IT needs and focus on growing your business.
Configured For All Businesses. Start Your Cloud Today.
https://www.gigenetcloud.com/
_______________________________________________
Ryu-devel mailing list
Ryu-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ryu-devel

Reply via email to