class TestSwitch:

    # このクラスのテストケースを実行する前に1度だけ実行する
    @classmethod
    def setup_class(clazz):
        # 好きなことをする
        pass
    
    # このクラスのテストケースをすべて実行した後に1度だけ実行する
    @classmethod
    def teardown_class(clazz):
        # 好きなことをする
        pass
    
    # このクラスの各テストケースを実行する前に実行する
    def setup(self):
        self.sw = Switch('sw001')
        assert self.sw.name == 'sw001'
        
    # このクラスの各テストケースを実行した後に実行する
    def teardown(self):
        # 好きなことをする
        pass
    
    def test_add_ports(self):
        self.sw.add_ports(['01'])
        assert self.sw.ports == ['01'] 
        self.sw.add_ports(['02', '03'])
        assert self.sw.ports == ['01', '02', '03'] 

    def test_add_rules(self):
        self.rules = []
        self.rules.append( {'in_ports' : [1]} )
        self.rules.append( {'in_ports' : [2, 3]} )
        self.rules[0]['out_ports'] = [1]
        self.rules[1]['out_ports'] = [2, 3]
        self.sw.add_rules(self.rules)
        
        assert self.sw.rules == self.rules