Esempio n. 1
0
    def test_selective_attribute(self):
        self.maxDiff = None
        intf = Interface(device=self.device)
        # Get outputs
        intf.maker.outputs[ShowInterfaces] = \
            {'':InterfaceOutput.ShowInterfaces}

        intf.maker.outputs[ShowEtherchannelSummary] = \
            {'':InterfaceOutput.ShowEtherchannelSummary}

        intf.maker.outputs[ShowIpInterface] = \
            {'':InterfaceOutput.ShowIpInterface}

        intf.maker.outputs[ShowIpv6Interface] = \
            {'':InterfaceOutput.ShowIpv6Interface}

        intf.maker.outputs[ShowVrfDetail] = \
            {'':InterfaceOutput.ShowVrfDetail}

        intf.maker.outputs[ShowInterfacesAccounting] = \
            {'':InterfaceOutput.ShowInterfacesAccounting}

        # Learn the feature
        intf.learn()        

        # Check specific attribute values
        # info - vrf
        self.assertEqual(intf.info['GigabitEthernet0/0']['vrf'], 'Mgmt-vrf')
        # info - link_status
        self.assertEqual(intf.info['GigabitEthernet1/0/2']['oper_status'], 'up')
Esempio n. 2
0
    def test_incomplete_output(self):
        self.maxDiff = None
        intf = Interface(device=self.device)
        custom = {
            'ShowInterfacesAccounting': {
                '': 'GigabitEthernet1/0/1',
            }
        }
        outputs['show interfaces accounting'] = ''
        outputs['show ip interface'] = ''

        intf.maker.outputs[ShowInterfacesAccounting] = \
            {'':InterfaceOutput.ShowInterfacesAccountingCustom}
        self.device.execute = Mock()
        self.device.execute.side_effect = mapper
        # Learn the feature
        intf.learn(custom=custom)

        # Delete missing specific attribute values
        outputs[
            'show interfaces accounting'] = InterfaceOutput.ShowInterfacesAccounting_all
        outputs['show ip interface'] = InterfaceOutput.ShowIpInterfaces_all
        expect_dict = deepcopy(InterfaceOutput.InterfaceOpsOutput_info)
        del (expect_dict['GigabitEthernet1/0/1']['ipv4'])
        del (expect_dict['GigabitEthernet1/0/2']['accounting'])
        # Verify Ops was created successfully
        self.assertDictEqual(intf.info, expect_dict)
Esempio n. 3
0
    def test_complete_output(self):
        self.maxDiff = None
        intf = Interface(device=self.device)
        # Get outputs
        intf.maker.outputs[ShowInterfaces] = \
            {'':InterfaceOutput.ShowInterfaces}

        intf.maker.outputs[ShowEtherchannelSummary] = \
            {'':InterfaceOutput.ShowEtherchannelSummary}

        intf.maker.outputs[ShowIpInterface] = \
            {'':InterfaceOutput.ShowIpInterface}

        intf.maker.outputs[ShowIpv6Interface] = \
            {'':InterfaceOutput.ShowIpv6Interface}

        intf.maker.outputs[ShowVrfDetail] = \
            {'':InterfaceOutput.ShowVrfDetail}

        intf.maker.outputs[ShowInterfacesAccounting] = \
            {'':InterfaceOutput.ShowInterfacesAccounting}

        # Learn the feature
        intf.learn()
        # Verify Ops was created successfully
        self.assertEqual(intf.info, InterfaceOutput.InterfaceOpsOutput_info)
Esempio n. 4
0
    def test_complete_output(self):
        self.maxDiff = None
        intf = Interface(device=self.device)

        self.device.execute = Mock()
        self.device.execute.side_effect = mapper
        # Learn the feature
        intf.learn()
        # Verify Ops was created successfully
        self.assertDictEqual(intf.info,
                             InterfaceOutput.InterfaceOpsOutput_info)
Esempio n. 5
0
    def test_custom_output(self):

        intf = Interface(device=self.device)
        self.device.execute = Mock()
        self.device.execute.side_effect = mapper
        # Learn the feature
        intf.learn(interface='GigabitEthernet1/0/1',
                   vrf='VRF1',
                   address_family='ipv4')

        self.maxDiff = None
        # Verify Ops was created successfully
        self.assertDictEqual(intf.info,
                             InterfaceOutput.interfaceOpsOutput_custom_info)
Esempio n. 6
0
    def test_selective_attribute(self):
        self.maxDiff = None
        intf = Interface(device=self.device)

        self.device.execute = Mock()
        self.device.execute.side_effect = mapper
        # Learn the feature
        intf.learn()

        # Check specific attribute values
        # info - vrf
        self.assertEqual(intf.info['GigabitEthernet1/0/1']['vrf'], 'VRF1')
        # info - link_status
        self.assertEqual(intf.info['GigabitEthernet1/0/2']['oper_status'],
                         'up')
Esempio n. 7
0
    def test_empty_output(self):
        self.maxDiff = None
        intf = Interface(device=self.device)
        # Get outputs
        intf.maker.outputs[ShowInterfaces] = {'':''}
        intf.maker.outputs[ShowEtherchannelSummary] = {'':''}
        intf.maker.outputs[ShowIpInterface] = {'':''}
        intf.maker.outputs[ShowIpv6Interface] = {'':''}
        intf.maker.outputs[ShowVrfDetail] = {'':''}
        intf.maker.outputs[ShowInterfacesAccounting] = {'':''}

        # Learn the feature
        intf.learn()

        # Check no attribute not found
        # info - oper_status
        with self.assertRaises(AttributeError):
            vrf = (intf.info['GigabitEthernet1/0/2']['oper_status'])
Esempio n. 8
0
    def test_incomplete_output(self):
        self.maxDiff = None
        intf = Interface(device=self.device)
        # Get outputs
        intf.maker.outputs[ShowInterfaces] = \
            {'':InterfaceOutput.ShowInterfaces}

        intf.maker.outputs[ShowEtherchannelSummary] = \
            {'':InterfaceOutput.ShowEtherchannelSummary}

        intf.maker.outputs[ShowIpInterface] = {'':''}

        intf.maker.outputs[ShowIpv6Interface] = \
            {'':InterfaceOutput.ShowIpv6Interface}

        intf.maker.outputs[ShowVrfDetail] = \
            {'':InterfaceOutput.ShowVrfDetail}

        custom = {
            'ShowInterfacesAccounting': {
                '': 'GigabitEthernet1/0/1',
            }
        }

        # intf.maker.outputs[ShowInterfacesAccounting] = \
        #     {"{'intf': 'GigabitEthernet1/0/1'}":InterfaceOutput.ShowInterfacesAccountingCustom}

        intf.maker.outputs[ShowInterfacesAccounting] = \
            {'':InterfaceOutput.ShowInterfacesAccountingCustom}

        # Learn the feature
        intf.learn(custom=custom)

        # Delete missing specific attribute values
        expect_dict = deepcopy(InterfaceOutput.InterfaceOpsOutput_info)
        del(expect_dict['GigabitEthernet1/0/1']['ipv4'])
        del(expect_dict['GigabitEthernet1/0/2']['accounting'])
        del(expect_dict['GigabitEthernet0/0']['ipv4'])
        del(expect_dict['Vlan100']['ipv4'])

        # Verify Ops was created successfully
        self.assertDictEqual(intf.info, expect_dict)
Esempio n. 9
0
    def test_empty_output(self):
        self.maxDiff = None
        intf = Interface(device=self.device)
        # Get outputs
        outputs['show interfaces GigabitEthernet1/0/1'] = ''
        outputs['show interfaces GigabitEthernet1/0/1 accounting'] = ''
        outputs['show ip interface GigabitEthernet1/0/1'] = ''
        outputs['show ipv6 interface GigabitEthernet1/0/1'] = ''
        outputs['show vrf'] = ''
        outputs['show interfaces'] = ''
        outputs['show ip interface'] = ''
        outputs['show ipv6 interface'] = ''
        outputs['show interfaces accounting'] = ''
        self.device.execute = Mock()
        self.device.execute.side_effect = mapper

        # Learn the feature
        intf.learn()
        outputs[
            'show interfaces GigabitEthernet1/0/1'] = InterfaceOutput.ShowInterfaces_gi1
        outputs[
            'show interfaces GigabitEthernet1/0/1 accounting'] = \
            InterfaceOutput.ShowInterfacesAccounting_gi1
        outputs[
            'show ip interface GigabitEthernet1/0/1'] = \
            InterfaceOutput.ShowIpInterfaces_gi1
        outputs[
            'show ipv6 interface GigabitEthernet1/0/1'] = \
            InterfaceOutput.ShowIpv6Interfaces_gi1
        outputs['show vrf'] = InterfaceOutput.ShowVrf_all
        outputs['show interfaces'] = InterfaceOutput.ShowInterfaces_all
        outputs['show ip interface'] = InterfaceOutput.ShowIpInterfaces_all
        outputs['show ipv6 interface'] = InterfaceOutput.ShowIpv6Interfaces_all
        outputs[
            'show interfaces accounting'] = InterfaceOutput.ShowInterfacesAccounting_all
        # Check no attribute not found
        # info - oper_status
        with self.assertRaises(AttributeError):
            vrf = (intf.info['GigabitEthernet1/0/2']['oper_status'])