import responses
from conftest import get_test_data
from brian_dashboard_manager.templating.gws import generate_gws
from brian_dashboard_manager.inventory_provider.interfaces import \
    get_gws_direct

TEST_DATA = get_test_data('gws-direct-data.json')


@responses.activate
def test_gws(data_config, client):

    responses.add(
        method=responses.GET,
        url=f"{data_config['inventory_provider']}/poller/gws/direct",
        json=TEST_DATA)

    gws_data = get_gws_direct(data_config['inventory_provider'])

    dashboards = list(generate_gws(gws_data, 'testdatasource'))

    assert len(dashboards) == 4

    assert dashboards[0]['title'] == 'GWS Direct - Cogent'
    assert len(dashboards[0]['panels']) == 10

    assert dashboards[1]['title'] == 'GWS Direct - CenturyLink'
    assert len(dashboards[1]['panels']) == 7