diff --git a/bpeng/tests/test_weather.py b/bpeng/tests/test_weather.py index 5b032f33969a08ea374a264ed0029a338ef3c5f2..63ed9ca2d510933232667a3beb1942e4477814b2 100644 --- a/bpeng/tests/test_weather.py +++ b/bpeng/tests/test_weather.py @@ -8,8 +8,8 @@ class TestWeather: def setup_class(self): self.scraper1 = WeatherUnderground( period='period', - startdate='2016/3/1', - enddate='2016/3/3', + startdate='2016/03/01', + enddate='2016/03/03', location='KNYC' ) @@ -19,6 +19,12 @@ class TestWeather: location='KNYC' ) + self.scraper3 = WeatherUnderground( + period='period', + startdate='2017/03/11', + enddate='2017/03/12', + ) + def test_parse(self): self.scraper1.get_weather(detail=True) output = self.scraper1.output_daily_data() diff --git a/bpeng/weather/weather.py b/bpeng/weather/weather.py index d6873db9dedebb00f8448e5605d4e39b9c956c41..4a20dfa25bdc62caf858b5ceb8a462bf8b830f2d 100644 --- a/bpeng/weather/weather.py +++ b/bpeng/weather/weather.py @@ -113,6 +113,7 @@ class WeatherUnderground: # Loop through all of the features, removing ones with invalid temperature for entry in html_features: try: + if float(entry[1]) < self.MIN_ALLOWED_TEMPERATURE: html_features.remove(entry) # pylint: disable=broad-except,unused-variable @@ -192,8 +193,8 @@ class WeatherUnderground: # A list to loop through so we can add new interpolated data # into the middle of the return_list looping_list = return_list - return_list = [] - for entry in looping_list[0:]: + return_list = [prev_entry] + for entry in looping_list[1:]: # If there is data missing between this hour and # the previous hour, find weighted average and set it to that value cur_hour = entry[0] @@ -202,7 +203,7 @@ class WeatherUnderground: if (cur_hour - prev_hour) != 1: cur_temp = entry[1] prev_temp = prev_entry[1] - for new_hour in range(cur_hour + 1, prev_hour): + for new_hour in range(prev_hour + 1, cur_hour): # Math to interpolate temperature interpolate_sum = ( cur_temp * (prev_hour - new_hour) +