import responses from brian_dashboard_manager.inventory_provider.interfaces import \ get_eumetsat_multicast_subscriptions from brian_dashboard_manager.templating.eumetsat \ import generate_eumetsat_multicast TEST_DATA = [ { 'router': 'mx1.ams.nl.geant.net', 'oid': '1.3.6.1.2.1.83.1.1.2.1.16.232.223.222.1.193.17.9.3.255.255.255.255', # noqa: E501 'community': '0pBiFbD', 'subscription': '232.223.222.1', 'endpoint': '193.17.9.3' }, { 'router': 'mx1.ams.nl.geant.net', 'oid': '1.3.6.1.2.1.83.1.1.2.1.16.232.223.222.2.193.17.9.3.255.255.255.255', # noqa: E501 'community': '0pBiFbD', 'subscription': '232.223.222.2', 'endpoint': '193.17.9.3' }, { 'router': 'mx1.lon.uk.geant.net', 'oid': '1.3.6.1.2.1.83.1.1.2.1.16.232.223.222.1.193.17.9.3.255.255.255.255', # noqa: E501 'community': '0pBiFbD', 'subscription': '232.223.222.1', 'endpoint': '193.17.9.3' }, { 'router': 'mx1.lon.uk.geant.net', 'oid': '1.3.6.1.2.1.83.1.1.2.1.16.232.223.222.2.193.17.9.3.255.255.255.255', # noqa: E501 'community': '0pBiFbD', 'subscription': '232.223.222.2', 'endpoint': '193.17.9.3' }, { 'router': 'mx1.fra.de.geant.net', 'oid': '1.3.6.1.2.1.83.1.1.2.1.16.232.223.222.1.193.17.9.3.255.255.255.255', # noqa: E501 'community': '0pBiFbD', 'subscription': '232.223.222.1', 'endpoint': '193.17.9.3' }, { 'router': 'mx1.fra.de.geant.net', 'oid': '1.3.6.1.2.1.83.1.1.2.1.16.232.223.222.2.193.17.9.3.255.255.255.255', # noqa: E501 'community': '0pBiFbD', 'subscription': '232.223.222.2', 'endpoint': '193.17.9.3' } ] @responses.activate def test_eumetsat_subscriptions(data_config, client): responses.add( method=responses.GET, url=f'{data_config["inventory_provider"]}/poller/eumetsat-multicast', json=TEST_DATA) subscription_data = {} for s in TEST_DATA: subscription_data.setdefault(s['router'], set()).add(s['subscription']) expected_titles = [ f'{name} subscriptions' for name in subscription_data.keys()] subscriptions = get_eumetsat_multicast_subscriptions( data_config['inventory_provider']) dashboards = list( generate_eumetsat_multicast(subscriptions, 'testdatasource')) assert len(dashboards) == len(expected_titles) assert all(d['title'] in expected_titles for d in dashboards) # just use 2, instead of something smart, since the data is above assert all(len(d['panels']) == 2 for d in dashboards)