def __set_prepare_config_common(status, bbr_enabled_pgs, available_pgs, mapping_pgs, expected_cmds, bbr_applied_pgs=None): cfg_mgr = MagicMock() common_objs = { 'directory': Directory(), 'cfg_mgr': cfg_mgr, 'tf': TemplateFabric(), 'constants': global_constants, } m = BBRMgr(common_objs, "CONFIG_DB", "BGP_BBR") m.directory.data = { "CONFIG_DB__DEVICE_METADATA": { "localhost": { "bgp_asn": "65500" } } } m.bbr_enabled_pgs = bbr_enabled_pgs m._BBRMgr__get_available_peer_groups = MagicMock( return_value=available_pgs) m._BBRMgr__get_available_peers_per_peer_group = MagicMock( return_value=mapping_pgs) cmds, peer_groups = m._BBRMgr__set_prepare_config(status) assert cmds == expected_cmds assert set(peer_groups) == (available_pgs if not bbr_applied_pgs else bbr_applied_pgs)
def test__get_available_peers_per_peer_group(): cfg_mgr = MagicMock() common_objs = { 'directory': Directory(), 'cfg_mgr': cfg_mgr, 'tf': TemplateFabric(), 'constants': global_constants, } m = BBRMgr(common_objs, "CONFIG_DB", "BGP_BBR") m.cfg_mgr.get_text = MagicMock(return_value=[ ' neighbor PEER_V4 peer-group', ' neighbor PEER_V6 peer-group', ' neighbor 10.0.0.1 peer-group PEER_V4', ' neighbor fc00::1 peer-group PEER_V6', ' neighbor 10.0.0.10 peer-group PEER_V4', ' neighbor fc00::2 peer-group PEER_V6', ' ', ]) res = m._BBRMgr__get_available_peers_per_peer_group(['PEER_V4', "PEER_V6"]) assert dict(res) == { "PEER_V4": ['10.0.0.1', '10.0.0.10'], "PEER_V6": ['fc00::1', 'fc00::2'], }