예제 #1
0
    def test_empty_output_static_route(self):
        self.maxDiff = None
        f = StaticRouting(device=self.device)
        # Get outputs
        f.maker.outputs[ShowVrfDetail] = {'': {}}

        outputs['show ip static route'] = ''
        outputs['show ip static route vrf VRF1'] = ''
        outputs['show ipv6 static detail'] = ''
        outputs['show ipv6 static vrf VRF1 detail'] = ''

        # Return outputs above as inputs to parser when called
        self.device.execute = Mock()
        self.device.execute.side_effect = mapper

        # Learn the feature
        f.learn()

        # revert back
        outputs[
            'show ip static route'] = StaticRouteOutput.showIpv4StaticRoute_default
        outputs[
            'show ip static route vrf VRF1'] = StaticRouteOutput.showIpv4StaticRoute_vrf1
        outputs[
            'show ipv6 static detail'] = StaticRouteOutput.showIpv6StaticRoute_default
        outputs[
            'show ipv6 static vrf VRF1 detail'] = StaticRouteOutput.showIpv6StaticRoute_vrf1

        # Check no attribute not found
        with self.assertRaises(AttributeError):
            f.info['vrf']
예제 #2
0
    def test_full_static_route(self):
        f = StaticRouting(device=self.device)
        f.maker.outputs[ShowVrfDetail] = {'': StaticRouteOutput.ShowVrfDetail}

        # Get 'show ip static route' output
        self.device.execute = Mock()
        self.device.execute.side_effect = mapper
        # Learn the feature
        f.learn()

        self.maxDiff = None
        self.assertEqual(f.info, StaticRouteOutput.staticRouteOpsOutput)
예제 #3
0
    def test_missing_attributes_static_route(self):
        f = StaticRouting(device=self.device)
        f.maker.outputs[ShowVrfDetail] = {'': StaticRouteOutput.ShowVrfDetail}

        # Get 'show ip static route' output
        self.device.execute = Mock()
        self.device.execute.side_effect = mapper
        # Learn the feature
        f.learn()

        with self.assertRaises(KeyError):
            interfaces = f.info['vrf']['VRF1']['address_family']['ipv4']['routes']\
                ['10.36.3.3/32']['next_hop']['interface']
예제 #4
0
    def test_selective_attribute_static_route(self):
        f = StaticRouting(device=self.device)
        f.maker.outputs[ShowVrfDetail] = {'': StaticRouteOutput.ShowVrfDetail}

        # Get 'show ip static route' output
        self.device.execute = Mock()
        self.device.execute.side_effect = mapper
        # Learn the feature
        f.learn()
        # Check match

        self.assertEqual('GigabitEthernet0/2', f.info['vrf']['VRF1']['address_family']['ipv4']['routes']\
            ['10.36.3.3/32']['next_hop']['outgoing_interface']['GigabitEthernet0/2']['outgoing_interface'])
        # Check does not match
        self.assertNotEqual('GigabitEthernet0/0', f.info['vrf']['VRF1']['address_family']['ipv4']['routes']\
            ['10.36.3.3/32']['next_hop']['outgoing_interface']['GigabitEthernet0/2']['outgoing_interface'])