def test_get_data_keys_name(self): expect_key = {'locations', 'total', 'last_updated'} expect_location_keys = { 'country', 'country_code', 'province', 'history', 'total' } self.assertEqual(services.get_data('confirmed').keys(), expect_key) self.assertEqual( services.get_data('confirmed')['locations'][0].keys(), expect_location_keys)
def api_confirmed_country(category, country_code, province_name): """ Get all the historic confirmed, deaths or recovered by country and/or provinces """ if category.lower() not in ('confirmed', 'deaths', 'recovered'): return '' data = get_data(category) data_country_all_province = [] # By country and province for country in data['locations']: if country['country_code'] == country_code.upper( ) and country['province'].lower() == province_name.lower(): return jsonify({ 'data': country['history'], 'last_updated': dateutil.parser.parse(data['last_updated']) }) # By country, so we must regrouped province for country in data['locations']: if country['country_code'] == country_code.upper(): data_country_all_province.append(country['history']) return { 'data': data_country_by_province(data_country_all_province), 'last_updated': '' }
def api_confirmed(): """ get the confirmed by country """ data = get_data('confirmed') return jsonify( sorted(data['locations'], key=lambda k: k.get('total', 0), reverse=True))
def api_deaths(): """ Get the deaths by country """ data = get_data('deaths') return jsonify( sorted(data['locations'], key=lambda k: k.get('total', 0), reverse=True))
def test_get_data_keys_number(self): self.assertEqual(len(services.get_data('confirmed').keys()), 3) self.assertEqual( len(services.get_data('confirmed')['locations'][0].keys()), 5)