def test_with_sample():
    dirname = os.path.dirname(os.path.dirname(__file__))
    path = os.path.join(dirname, 'test/sample.json')
    with open(path) as json_file:
        forecast_list = json.load(json_file)['list']
        daily_forecasts = weather.get_daily_forecasts(forecast_list)
        assert isinstance(daily_forecasts, list)
        assert 5 == len(daily_forecasts)
        daily_averages = weather.get_daily_averages(daily_forecasts)
        assert isinstance(daily_averages, list)
        assert 5 == len(daily_averages)
        results = weather.get_contact_method(daily_averages)
        assert isinstance(results, list)
        assert 5 == len(results)
        assert 'call' == results[0]['method']
        assert 'text' == results[1]['method']
        assert 'call' == results[2]['method']
        assert 'email' == results[3]['method']
        assert 'call' == results[4]['method']
def test_get_contact_method_when_temp_between_55_and_75_and_raining():
    data = [dict(date=datetime(2020, 2, 18), avg_temp=65.1, is_rainy=True, is_sunny=False)]
    result = weather.get_contact_method(data)
    assert isinstance(result, list)
    assert 1 == len(result)
    assert 'call' == result[0]['method']
def test_get_contact_method_when_temp_above_75():
    data = [dict(date=datetime(2020, 2, 18), avg_temp=85.1, is_rainy=False, is_sunny=False)]
    result = weather.get_contact_method(data)
    assert isinstance(result, list)
    assert 1 == len(result)
    assert 'text' == result[0]['method']