def test_forecast_daily():
    HTTPretty.register_uri(
        HTTPretty.GET,
        'https://api.forecast.io/forecast/1234/38.9717,-95.235',
        body=open('tests/full.json', 'r').read(),
        content_type='text/json')

    forecast = Forecast(apikey, latitude=latitude, longitude=longitude)
    daily = forecast.get_daily()

    assert 'data' in daily.keys()
    assert 'icon' in daily.keys()
    assert 'summary' in daily.keys()

    assert daily['icon'] == u'rain'
    assert daily['summary'] == u'Mixed precipitation off-and-on throughout the week; temperatures peaking at 70\xb0 on Sunday.'

    assert len(daily['data']) == 8
    assert 'cloudCover' in daily['data'][0].keys()
    assert 'humidity' in daily['data'][0].keys()
    assert 'icon' in daily['data'][0].keys()
    assert 'precipIntensity' in daily['data'][0].keys()
    assert 'precipType' in daily['data'][0].keys()
    assert 'pressure' in daily['data'][0].keys()
    assert 'summary' in daily['data'][0].keys()
    assert 'sunriseTime' in daily['data'][0].keys()
    assert 'sunsetTime' in daily['data'][0].keys()
    assert 'temperatureMax' in daily['data'][0].keys()
    assert 'temperatureMaxTime' in daily['data'][0].keys()
    assert 'temperatureMin' in daily['data'][0].keys()
    assert 'temperatureMinTime' in daily['data'][0].keys()
    assert 'time' in daily['data'][0].keys()
    assert 'visibility' in daily['data'][0].keys()
    assert 'windBearing' in daily['data'][0].keys()
    assert 'windSpeed' in daily['data'][0].keys()

    assert daily['data'][0]['temperatureMax'] == 63.85
    assert daily['data'][0]['temperatureMin'] == 35.05
    assert daily['data'][0]['time'] == datetime(2013, 3, 28, 0, 0)
    assert daily['data'][0]['sunriseTime'] == datetime(2013, 3, 28, 7, 12, 29)
    assert daily['data'][0]['sunsetTime'] == datetime(2013, 3, 28, 19, 41, 39)
    assert daily['data'][0]['temperatureMaxTime'] == datetime(2013, 3, 28, 16, 0)
    assert daily['data'][0]['temperatureMinTime'] == datetime(2013, 3, 28, 7, 0)
def test_forecast_daily():
    body_fixture = open('tests/fixtures/full.json', 'r').read()
    httpretty.register_uri(httpretty.GET, API_URL, body=body_fixture,
        content_type='text/json')

    forecast = Forecast(API_KEY, latitude=LATITUDE, longitude=LONGITUDE)
    daily = forecast.get_daily()

    assert 'data' in daily.keys()
    assert 'icon' in daily.keys()
    assert 'summary' in daily.keys()

    assert daily['icon'] == u'rain'
    assert daily['summary'] == u'Mixed precipitation off-and-on throughout the week; temperatures peaking at 70\xb0 on Sunday.'

    assert len(daily['data']) == 8
    assert 'cloudCover' in daily['data'][0].keys()
    assert 'humidity' in daily['data'][0].keys()
    assert 'icon' in daily['data'][0].keys()
    assert 'precipIntensity' in daily['data'][0].keys()
    assert 'precipType' in daily['data'][0].keys()
    assert 'pressure' in daily['data'][0].keys()
    assert 'summary' in daily['data'][0].keys()
    assert 'sunriseTime' in daily['data'][0].keys()
    assert 'sunsetTime' in daily['data'][0].keys()
    assert 'temperatureMax' in daily['data'][0].keys()
    assert 'temperatureMaxTime' in daily['data'][0].keys()
    assert 'temperatureMin' in daily['data'][0].keys()
    assert 'temperatureMinTime' in daily['data'][0].keys()
    assert 'time' in daily['data'][0].keys()
    assert 'visibility' in daily['data'][0].keys()
    assert 'windBearing' in daily['data'][0].keys()
    assert 'windSpeed' in daily['data'][0].keys()

    assert daily['data'][0]['temperatureMax'] == 63.85
    assert daily['data'][0]['temperatureMin'] == 35.05
    assert str(daily['data'][0]['time'].astimezone(pytz.utc)) == str(pytz.utc.localize(datetime(2013, 3, 28, 5, 0)))
    assert str(daily['data'][0]['sunriseTime'].astimezone(pytz.utc)) == str(pytz.utc.localize(datetime(2013, 3, 28, 12, 12, 29)))
    assert str(daily['data'][0]['sunsetTime'].astimezone(pytz.utc)) == str(pytz.utc.localize(datetime(2013, 3, 29, 00, 41, 39)))

    assert str(daily['data'][0]['temperatureMaxTime'].astimezone(pytz.utc)) == str(pytz.utc.localize(datetime(2013, 3, 28, 21, 0)))
    assert str(daily['data'][0]['temperatureMinTime'].astimezone(pytz.utc)) == str(pytz.utc.localize(datetime(2013, 3, 28, 12, 0)))