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
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()
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')
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')