Exemplo n.º 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']
Exemplo n.º 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)
Exemplo n.º 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']
Exemplo n.º 4
0
    def test_empty_output_static_route(self):
        self.maxDiff = None
        f = StaticRouting(device=self.device)

        # Get outputs
        f.maker.outputs[ShowIpStaticRoute] = {'': {}}
        f.maker.outputs[ShowIpv6StaticDetail] = {'': {}}

        # Learn the feature
        f.learn()

        # Check no attribute not found
        with self.assertRaises(AttributeError):
            f.info['vrf']
Exemplo n.º 5
0
    def test_missing_attributes_static_route(self):
        f = StaticRouting(device=self.device)
        f.maker.outputs[ShowIpStaticRoute] = {
            '': StaticRouteOutput.showIpv4StaticRoute
        }
        f.maker.outputs[ShowIpv6StaticDetail] = {
            '': StaticRouteOutput.showIpv6StaticRoute
        }

        # Learn the feature
        f.learn()

        with self.assertRaises(KeyError):
            interfaces = f.info['vrf']['VRF1']['address_family']['ipv4']['routes']\
                ['3.3.3.3/32']['next_hop']['interface']
Exemplo n.º 6
0
    def test_full_static_route(self):
        f = StaticRouting(device=self.device)
        # Get 'show ip static route' output
        f.maker.outputs[ShowIpStaticRoute] = {
            '': StaticRouteOutput.showIpv4StaticRoute
        }
        f.maker.outputs[ShowIpv6StaticDetail] = {
            '': StaticRouteOutput.showIpv6StaticRoute
        }
        self.device.execute = Mock()
        # Learn the feature
        f.learn()

        self.maxDiff = None
        self.assertEqual(f.info, StaticRouteOutput.staticRouteOpsOutput)
Exemplo n.º 7
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'])
Exemplo n.º 8
0
    def test_selective_attribute_static_route(self):
        f = StaticRouting(device=self.device)

        # Get 'show ipv4 static route' output
        f.maker.outputs[ShowIpStaticRoute] = {
            '': StaticRouteOutput.showIpv4StaticRoute
        }
        f.maker.outputs[ShowIpv6StaticDetail] = {
            '': StaticRouteOutput.showIpv6StaticRoute
        }
        # Learn the feature
        f.learn()
        # Check match

        self.assertEqual('GigabitEthernet0/2', f.info['vrf']['VRF1']['address_family']['ipv4']['routes']\
            ['3.3.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']\
            ['3.3.3.3/32']['next_hop']['outgoing_interface']['GigabitEthernet0/2']['outgoing_interface'])