Beispiel #1
0
def countries_list():
    output = Country.get_all_json()

    return json.dumps(output)
Beispiel #2
0
 def test_all_countries(self):
     result = Country.get_all_json()
     assert len(result['data']) == 198
     assert len(result['data'][0]['regions']) == 8
Beispiel #3
0
 def test_all_countries(self):
     result = Country.get_all_json()
     assert len(result['data']) == 198
     assert len(result['data'][0]['regions']) == 8
Beispiel #4
0
def countries_list():

    country_data = {"data":{
                        "countries":{},
                        "regions":[]
                    }}

    country_data['data']['countries'] = Country.get_all_json()

    countrygroupingset = [
        {
            "id": "all",
            "label": "All Countries",
            "geounit": "all:all",
            "selected": False,
            "filtered": False,
            "regions": {}
        }, 
        {
            "id": "continent",
            "label": "Continent",
            "geounit": "continent:all",
            "selected": False,
            "filtered": False,
            "regions": {}
        }, 
        {
            "id": "dod_cmd",
            "label": "Department of Defense",
            "geounit": "dod_cmd:all",
            "selected": False,
            "filtered": False,
            "regions": {}
        }, 
        {
            "id": "dos_region",
            "label": "Department of State",
            "geounit": "dos_region:all",
            "selected": False,
            "filtered": False,
            "regions": {}
        }, 
        {
            "id": "usaid_reg",
            "label": "USAID",
            "geounit": "usaid_reg:all",
            "selected": False,
            "filtered": False,
            "regions": {}
        }, 
        {
            "id": "wb_inc_lvl",
            "label": "Income Groups",
            "geounit": "wb_inc_lvl:all",
            "selected": False,
            "filtered": False,
            "regions": {}
        }]


    for countrygroupobj in countrygroupingset:
        if countrygroupobj['id'] == "all":
            countrygroupobj['regions']= {"countries": {
                                        "id": 'countries',
                                        "label": 'countries',
                                        "geounit": countrygroupobj['id'] + ":" + 'countries',
                                        "selected": False,
                                        "filtered": False,
                                        'countries': [conobj for conobj in country_data['data']['countries']]
                                        }}
            continue
        for countryobj in country_data['data']['countries']:
            regionid = countryobj['regions'].get(countrygroupobj['id'], None)
            if regionid:
                if countrygroupobj['regions'].get(regionid):
                    countrygroupobj['regions'][regionid]['countries'].append(countryobj)
                else:
                    countrygroupobj['regions'][regionid] = \
                                    {
                                        "id": regionid,
                                        "label": regionid,
                                        "geounit": countrygroupobj['id'] + ":" + regionid,
                                        "countries": [countryobj],
                                        "selected": False,
                                        "filtered": False
                                    }


    country_data['data']['regions'] = countrygroupingset
    # resp = Response(response=json.dumps({'data':json.dumps(country_data)}),
    #         status=200, \
    #         mimetype="application/json")
    return json.dumps(country_data)