import pathlib

from lxml import etree

from inventory_provider.nokia import get_lags, interface_addresses

netconf_doc = etree.parse(pathlib.Path(__file__).parent.joinpath(
    'data/rt0.lon.uk.lab.office.geant.net-netconf-nokia.xml'))


def test_get_lags():
    lags = list(get_lags(netconf_doc))
    assert len(lags) == 4
    found_names = {lag['name'] for lag in lags}
    expected_names = {'lag-1', 'lag-2', 'lag-3', 'lag-31'}
    assert found_names == expected_names


def test_interface_addresses():
    if_addresses = list(interface_addresses(netconf_doc))
    assert len(if_addresses) == 9
    found_names = {_interface['interface name'] for _interface in if_addresses}
    expected_names = {'lag-1.0', 'lag-2.0', 'system', 'to_rt0_ams_ZR-INFINERA',
                      'to_rt0_ams_ZR-NOKIA'}
    assert found_names == expected_names