From 74d166037fb8f6bfe317c954db0f989f14a23907 Mon Sep 17 00:00:00 2001 From: Bezleputh Date: Tue, 7 Jul 2015 14:23:45 +0200 Subject: [PATCH] [meteofrance] allow to iter forecasts using town name in addition to city id --- modules/meteofrance/module.py | 10 +++++++++- modules/meteofrance/test.py | 3 +++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/modules/meteofrance/module.py b/modules/meteofrance/module.py index ad847dce..f6d36e69 100644 --- a/modules/meteofrance/module.py +++ b/modules/meteofrance/module.py @@ -46,4 +46,12 @@ class MeteofranceModule(Module, CapWeather): return self.browser.iter_city_search(pattern) def get_city(self, _id): - return find_object(self.iter_city_search(_id), id=_id, error=CityNotFound) + cities = list(self.iter_city_search(_id)) + + if len(cities) == 0: + raise CityNotFound() + + try: + return find_object(cities, id=_id, error=CityNotFound) + except CityNotFound: + return cities[0] diff --git a/modules/meteofrance/test.py b/modules/meteofrance/test.py index 9a9150a8..69607966 100644 --- a/modules/meteofrance/test.py +++ b/modules/meteofrance/test.py @@ -34,3 +34,6 @@ class MeteoFranceTest(BackendTest): forecasts = list(self.backend.iter_forecast(city.id)) self.assertTrue(len(forecasts) > 0) + + forecast2 = list(self.backend.iter_forecast('blagnac')) + self.assertTrue(len(forecast2) > 0)