Esempio n. 1
0
    def test_incomplete_output(self):
        mcast = Mcast(device=self.device)

        # Set outputs
        mcast.maker.outputs[ShowVrfDetail] = {'': McastOutput.ShowVrfDetail}

        self.device.execute = Mock()
        outputs['show ip multicast'] = ''

        self.device.execute.side_effect = mapper

        # Learn the feature
        mcast.learn()

        # Delete missing specific attribute values
        # import pdb; pdb.set_trace()
        expect_dict = deepcopy(McastOutput.McastInfo)
        del (expect_dict['vrf']['default']['address_family']['ipv4']['enable'])
        del (expect_dict['vrf']['default']['address_family']['ipv4']
             ['multipath'])

        # Verify Ops was created successfully
        # import pdb; pdb.set_trace()
        self.assertEqual(mcast.info, expect_dict)
        self.assertEqual(mcast.table, McastOutput.McastTable)
Esempio n. 2
0
    def test_complete_output(self):
        mcast = Mcast(device=self.device)

        # Set outputs
        mcast.maker.outputs[ShowVrfDetail] = {'': McastOutput.ShowVrfDetail}

        self.device.execute = Mock()
        self.device.execute.side_effect = mapper

        # Learn the feature
        mcast.learn()
        self.maxDiff = None

        # Verify Ops was created successfully
        self.assertEqual(mcast.info, McastOutput.McastInfo)
        self.assertEqual(mcast.table, McastOutput.McastTable)
Esempio n. 3
0
    def test_selective_attribute(self):
        mcast = Mcast(device=self.device)

        # Set outputs
        mcast.maker.outputs[ShowVrfDetail] = {'': McastOutput.ShowVrfDetail}

        self.device.execute = Mock()
        self.device.execute.side_effect = mapper

        # Learn the feature
        mcast.learn()

        # Test specific attributes in info
        self.assertEqual(mcast.info['vrf']['default']['address_family']['ipv4']\
                ['mroute']['172.16.0.0/16']['path']['172.30.10.13 1']\
                ['neighbor_address'], '172.30.10.13')

        # Test specific attribute in table
        self.assertEqual(mcast.table['vrf']['VRF1']['address_family']\
                ['ipv6']['multicast_group']['FF07::1']\
                ['source_address']['2001:DB8:999::99']['flags'], 'SFT')
Esempio n. 4
0
    def test_empty_output(self):
        mcast = Mcast(device=self.device)

        # Set outputs
        mcast.maker.outputs[ShowVrfDetail] = {'':McastOutput.ShowVrfDetail}
        self.device.execute = Mock()
        self.device.execute.side_effect = ['','','','','','','','','','','','']

        # Learn the feature
        mcast.learn()

        # Check no outputs in mcast.info
        with self.assertRaises(AttributeError):
            neighbor_address = mcast.info['vrf']['default']['address_family']['ipv4']\
                ['mroute']['172.16.0.0/16']['path']['172.30.10.13 1']\
                ['neighbor_address']

        # Check no outputs in mcast.table
        with self.assertRaises(AttributeError):
            flags = mcast.table['vrf']['VRF1']['address_family']\
                ['ipv6']['multicast_group']['FF07::1']\
                ['source_address']['2001:DB8:999::99']['flags']