def test_create_report(token):
    client = Client(api_key=token, host="localhost:8030/api2", ssl=False)
    number_of_reports = client.list_reports()['count']
    report = client.create_report(title="api created report")
    assert client.list_reports()['count'] == number_of_reports + 1
    report.delete()
    assert client.list_reports()['count'] == number_of_reports
def test_get_report_meta(token):
    client = Client(api_key=token, host="localhost:8030/api2", ssl=False)
    reports = client.list_reports()
    pk = reports['results'][0]['pk']
    result = client.get_report_meta(pk)
    print(result)
    assert 'pk' in result
def test_get_report(token):
    client = Client(api_key=token, host="localhost:8030/api2", ssl=False)
    reports = client.list_reports()
    pk = reports['results'][0]['pk']
    report = client.get_report(pk)
    print(report.title)
    print(report.elements)
    assert isinstance(report, Report)
def test_add_chart(token):
    client = Client(api_key=token, host="localhost:8030/api2", ssl=False)
    reports = client.list_reports()
    datasources = client.list_datasources()
    datasource_id = datasources['results'][0]['pk']
    report = client.get_report(reports['results'][0]['pk'])
    original_length = len(report.elements)
    report.add_chart(datasource_primary_key=datasource_id,
                     x=['service', 'quality'])
    report = client.get_report(reports['results'][0]['pk'])
    assert len(report.elements) == original_length + 1
def test_update_meta_element(token):
    client = Client(api_key=token, host="localhost:8030/api2", ssl=False)
    reports = client.list_reports()
    datasources = client.list_datasources()
    datasource_id = datasources['results'][0]['pk']
    report = client.get_report(reports['results'][0]['pk'])
    meta = report.meta
    resp = report.update_meta_element('title', 'new title')
    assert resp.status_code == 200
    report = client.get_report(reports['results'][0]['pk'])
    assert report.meta['title'] == 'new title'
def test_add_multiple_charts(token):
    client = Client(api_key=token, host="localhost:8030/api2", ssl=False)
    reports = client.list_reports()
    datasources = client.list_datasources()
    datasource_id = datasources['results'][0]['pk']
    report = client.get_report(reports['results'][0]['pk'])
    original_length = len(report.elements)
    report.add_charts(datasource_primary_key=datasource_id,
                      x_y_pairs=[('price', 'gender'), ('quality', '@'),
                                 ('service', '@'), ('distance', '@'),
                                 ('quality', '@'), ('quality', '@'),
                                 ('quality', '@'), ('quality', '@')],
                      user_filters=['gender', 'agecat'],
                      filter=['gender == 1'],
                      comparison_variables=['agecat'],
                      charts_per_row=3)
    report = client.get_report(report._pk)
    assert len(report.elements) == original_length + 8
def test_get_content(token):
    client = Client(api_key=token, host="localhost:8030/api2", ssl=False)
    reports = client.list_reports()
    report = client.get_report_elements(reports['results'][0]['pk'])
    print(report)
    assert 'elements' in report
def test_get_url(token):
    client = Client(api_key=token, host="localhost:8030/api2", ssl=False)
    reports = client.list_reports()
    report = client.get_report(reports['results'][0]['pk'])
    assert len(report.get_url()) > 0
def test_list_reports(token):
    client = Client(api_key=token, host="localhost:8030/api2", ssl=False)
    reports = client.list_reports()
    assert 'results' in reports