def test_install_nni_flows(send_flow_mods_mock): """Test install nni flows method. This test will verify the flows send to the send_flow_mods method. """ uni_a = get_uni_mocked(interface_port=2, tag_value=82, switch_id="switch_uni_a", is_valid=True) uni_z = get_uni_mocked(interface_port=3, tag_value=83, switch_id="switch_uni_z", is_valid=True) attributes = { "controller": get_controller_mock(), "name": "custom_name", "uni_a": uni_a, "uni_z": uni_z, "primary_links": [ get_link_mocked(endpoint_a_port=9, endpoint_b_port=10, metadata={"s_vlan": 5}), get_link_mocked(endpoint_a_port=11, endpoint_b_port=12, metadata={"s_vlan": 6}) ] } evc = EVC(**attributes) # pylint: disable=protected-access evc._install_nni_flows(attributes['primary_links']) in_vlan = evc.primary_links[0].get_metadata('s_vlan').value out_vlan = evc.primary_links[-1].get_metadata('s_vlan').value in_port = evc.primary_links[0].endpoint_b.port_number out_port = evc.primary_links[-1].endpoint_a.port_number expected_flow_mods = [ { 'match': {'in_port': in_port, 'dl_vlan': in_vlan}, 'cookie': evc.get_cookie(), 'actions': [ {'action_type': 'set_vlan', 'vlan_id': out_vlan}, {'action_type': 'output', 'port': out_port} ] }, { 'match': {'in_port': out_port, 'dl_vlan': out_vlan}, 'cookie': evc.get_cookie(), 'actions': [ {'action_type': 'set_vlan', 'vlan_id': in_vlan}, {'action_type': 'output', 'port': in_port} ] } ] switch = evc.primary_links[0].endpoint_b.switch send_flow_mods_mock.assert_called_once_with(switch, expected_flow_mods)
def test_install_nni_flows(send_flow_mods_mock): """Test install nni flows method. This test will verify the flows send to the send_flow_mods method. """ uni_a = get_uni_mocked( interface_port=2, tag_value=82, switch_id="switch_uni_a", is_valid=True, ) uni_z = get_uni_mocked( interface_port=3, tag_value=83, switch_id="switch_uni_z", is_valid=True, ) attributes = { "controller": get_controller_mock(), "name": "custom_name", "uni_a": uni_a, "uni_z": uni_z, "primary_links": [ get_link_mocked( endpoint_a_port=9, endpoint_b_port=10, metadata={"s_vlan": 5}, ), get_link_mocked( endpoint_a_port=11, endpoint_b_port=12, metadata={"s_vlan": 6}, ), ], } evc = EVC(**attributes) # pylint: disable=protected-access evc._install_nni_flows(attributes["primary_links"]) in_vlan = evc.primary_links[0].get_metadata("s_vlan").value out_vlan = evc.primary_links[-1].get_metadata("s_vlan").value in_port = evc.primary_links[0].endpoint_b.port_number out_port = evc.primary_links[-1].endpoint_a.port_number expected_flow_mods = [ { "match": { "in_port": in_port, "dl_vlan": in_vlan }, "cookie": evc.get_cookie(), "actions": [ { "action_type": "set_vlan", "vlan_id": out_vlan }, { "action_type": "output", "port": out_port }, ], }, { "match": { "in_port": out_port, "dl_vlan": out_vlan }, "cookie": evc.get_cookie(), "actions": [ { "action_type": "set_vlan", "vlan_id": in_vlan }, { "action_type": "output", "port": in_port }, ], }, ] switch = evc.primary_links[0].endpoint_b.switch send_flow_mods_mock.assert_called_once_with(switch, expected_flow_mods)