diff --git a/weboob/backends/meteofrance/pages/meteo.py b/weboob/backends/meteofrance/pages/meteo.py index 7d7c12f5..6b6d0af0 100644 --- a/weboob/backends/meteofrance/pages/meteo.py +++ b/weboob/backends/meteofrance/pages/meteo.py @@ -29,7 +29,7 @@ class WeatherPage(BasePage): def get_temp_without_unit(self, temp_str): # It seems that the mechanize module give us some old style # ISO character - return temp_str.replace(u"\xb0C", "") + return int(temp_str.replace(u"\xb0C", "").strip()) def iter_forecast(self): for div in self.document.getiterator('div'): @@ -37,8 +37,8 @@ class WeatherPage(BasePage): for em in div.getiterator('em'): templist = em.text_content().split("/") - t_low = self.get_temp_without_unit(templist[0]).strip() - t_high = self.get_temp_without_unit(templist[1]).strip() + t_low = self.get_temp_without_unit(templist[0]) + t_high = self.get_temp_without_unit(templist[1]) break for strong in div.getiterator("strong"): mdate = strong.text_content() @@ -52,13 +52,13 @@ class WeatherPage(BasePage): for div in self.document.getiterator('div'): if div.attrib.has_key("id") and div.attrib.get('id') == "blocDetails0": for em in div.getiterator('em'): - temp = self.get_temp_without_unit(em.text_content()).strip() + temp = self.get_temp_without_unit(em.text_content()) break for img in div.getiterator("img"): mtxt = img.attrib["title"] break mdate = datetime.datetime.now() - yield Current(mdate, temp, mtxt, "C") + return Current(mdate, temp, mtxt, "C") def get_city(self): @@ -70,7 +70,7 @@ class WeatherPage(BasePage): city_name=strong.text +" "+ strong.tail.replace("(","").replace(")","") city_id=self.url.split("/")[-1] - return City( city_id, city_name) + return City(city_id, city_name) class CityPage(BasePage): diff --git a/weboob/backends/meteofrance/test.py b/weboob/backends/meteofrance/test.py new file mode 100644 index 00000000..7199fd69 --- /dev/null +++ b/weboob/backends/meteofrance/test.py @@ -0,0 +1,33 @@ +# -*- coding: utf-8 -*- + +# Copyright(C) 2010 Romain Bignon +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, version 3 of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + +from weboob.tools.test import BackendTest + +class MeteoFranceTest(BackendTest): + BACKEND = 'meteofrance' + + def test_meteofrance(self): + l = list(self.backend.iter_city_search('paris')) + self.assertTrue(len(l) > 0) + + city = l[0] + current = self.backend.get_current(city.id) + self.assertTrue(current.temp > -20 and current.temp < 50) + + forecasts = list(self.backend.iter_forecast(city.id)) + self.assertTrue(len(l) > 0)