diff --git a/src/cnaas_nms/db/settings.py b/src/cnaas_nms/db/settings.py index a96b2a4b..45a1db50 100644 --- a/src/cnaas_nms/db/settings.py +++ b/src/cnaas_nms/db/settings.py @@ -388,7 +388,7 @@ def check_vlan_collisions(devices_dict: Dict[str, dict], mgmt_vlans: Set[int], u if "vni" not in vxlan_data or not isinstance(vxlan_data["vni"], int): logger.error("VXLAN {} is missing vni".format(vxlan_name)) continue - if settings["vxlan_vni_range"] and "-" in settings["vxlan_vni_range"]: + if "vxlan_vni_range" in settings and settings["vxlan_vni_range"]: vni_range = settings["vxlan_vni_range"].split("-") if not int(vni_range[0]) < vxlan_data["vni"] < int(vni_range[1]): raise VlanConflictError( diff --git a/src/cnaas_nms/db/tests/test_settings.py b/src/cnaas_nms/db/tests/test_settings.py index 09747628..31a9fd95 100644 --- a/src/cnaas_nms/db/tests/test_settings.py +++ b/src/cnaas_nms/db/tests/test_settings.py @@ -11,6 +11,7 @@ DIR_STRUCTURE, VerifyPathException, VlanConflictError, + check_bgp_neighbor_routemaps, check_group_priority_collisions, check_vlan_collisions, get_device_primary_groups, @@ -171,6 +172,21 @@ def test_vlan_collisions(self): } self.assertIsNone(check_vlan_collisions(devices_dict, mgmt_vlans)) + def test_routing_policy(self): + test_device_name = "policytest" + test_vrfs = [ + { + "name": "testvrf", + "neighbor_v4": [{"route_map_in": "routemap1", "route_map_out": "routemap1"}], + "neighbor_v6": [{"route_map_in": "routemap2", "route_map_out": "routemap2"}], + } + ] + with self.assertRaises(ValueError, msg="Undefined route map routemap1 should raise error"): + check_bgp_neighbor_routemaps(test_device_name, test_vrfs, {}) + check_bgp_neighbor_routemaps(test_device_name, test_vrfs, {"routemap1", "routemap2"}) + with self.assertRaises(KeyError): + check_bgp_neighbor_routemaps(test_device_name, [{"name": "emptyvrf"}], {}) + def test_groups_priorities_sorted(self): group_settings_dict = { "groups": [