예제 #1
0
def test_datapoints_cpt_EU28(mock_adapter, mock_cube):

    datapoints = get_datapoints_cp()
    form = {
        'indicator-group': 'broadband',
        'ref-area': 'RO',
        'time-period': '2015',
        'indicator': ["e_broad"],
        'subtype': 'table'
    }

    datasource = Mock(get_cube=Mock(return_value=mock_cube))
    view = AjaxDataView(datasource, Mock(form=form))
    mock_cube.get_observations_cp = Mock(return_value=datapoints)
    mock_adapter.return_value = Mock(
        whitelist=[
            {'indicator-group': 'broadband',
             'breakdown': 'ent_all_xfin',
             'indicator': 'e_broad',
             'unit-measure': 'pc_ent'}],
        eu = {'RO': 'Romania'}
    )
    res = json.loads(view.datapoints_cpt())
    assert len(res['datapoints']) == 4
    assert len(res['datapoints']['table']) == 1
    assert res['datapoints']['latest'] == 2015
    assert res['datapoints']['ref-area']['notation'] == 'RO'
    assert res['datapoints']['table']['e_broad,ent_all_xfin,pc_ent']['eu'] == 0.925897
예제 #2
0
def test_datapoints_cpt_blacklist_filtering(mock_adapter, mock_cube):
    datapoints = [
        {
            "breakdown": {
                "short-label": "All enterprises",
                "notation": "ent_all_xfin",
                "label": "All enterprises"
            },
            "indicator": {
                "short-label": "Use of eGovernment services - enterprises",
                "notation": "e_igov",
                "label": "Enterprises interacting online with public authorities",
                "inner_order": 1
            },
            "time-period": {
                "short-label": "2004",
                "notation": "2004",
                "label": "Year:2004"
            },
            "value": 0.8388,
            "note": None,
            "flag": None,
            "unit-measure": {
                "short-label": "% of enterprises",
                "notation": "pc_ent",
                "label": "Percentage of enterprises"
            },
            "ref-area": {
                "short-label": None,
                "notation": "EE",
                "label": "Estonia"
            }
        }
    ]

    form = {
        'indicator-group': 'egovernment',
        'ref-area': 'EE',
        'time-period': '2012',
        'indicator': ["e_igov","e_igov2pr","e_igovrt","i_igov12rt","i_iugov12"]
    }

    from edw.datacube.browser.query import AjaxDataView
    datasource = Mock(get_cube=Mock(return_value=mock_cube))
    view = AjaxDataView(datasource, Mock(form=form))
    mock_cube.get_observations_cp = Mock(return_value=datapoints)
    mock_adapter.return_value = Mock(
        whitelist=[
            {'indicator-group': 'egovernment',
             'breakdown': 'ent_all_xfin',
             'indicator': 'e_igov',
             'unit-measure': 'pc_ent'}],
        eu = {'EE': 'Estonia'}
    )

    res = json.loads(view.datapoints_cpt())
    assert 'e_igov,ent_all_xfin,pc_ent' in res['datapoints']['table'].keys()
예제 #3
0
def test_dump_csv_response_content_type(mock_cube):
    dump = [ { 'indicator': 'i',
               'breakdown': u'b',
               'unit_measure': 'u-m',
               'time_period': 't',
               'ref_area': 'r',
               'value': 0.5 } ]
    mock_cube.dump.return_value = iter(dump)

    datasource = Mock(get_cube=Mock(return_value=mock_cube))
    datasource.getId.return_value = 'testcube'
    view = AjaxDataView(datasource, Mock(form={}))
    res = view.download_csv()
    setHeader_call = res.setHeader.mock_calls[0]
    assert setHeader_call == call('Content-type', 'text/csv; charset=utf-8')
예제 #4
0
def test_dump_csv_fields_order(mock_cube):
    dump = ('header\n'
           'breakdown1,indicator1,ref-area1,time-period1,unit-measure1,value1\n')
    mock_cube.dump.return_value = dump

    datasource = Mock(get_cube=Mock(return_value=mock_cube))
    datasource.getId.return_value = 'testcube'
    view = AjaxDataView(datasource, Mock(form={}))
    import csv
    stream = Mock()
    res = view.dump_csv(stream, csv.excel)
    header_write_call = res.write.mock_calls[0]
    row_write_call = res.write.mock_calls[1]
    assert header_write_call == call('indicator,breakdown,unit_measure,' \
                                     'time_period,ref_area,value\r\n')
    assert row_write_call == call(
           'indicator1,breakdown1,unit-measure1,time-period1,ref-area1,value1\r\n')