|
1 | 1 | import logging |
| 2 | +from datetime import datetime, timedelta, timezone |
2 | 3 |
|
3 | 4 | from nowcasting_datamodel.fake import ( |
4 | 5 | make_fake_forecasts, |
|
8 | 9 | from nowcasting_datamodel.models import ( |
9 | 10 | Forecast, |
10 | 11 | ForecastValue, |
| 12 | + InputDataLastUpdatedSQL, |
11 | 13 | LocationSQL, |
12 | 14 | MLModel, |
13 | 15 | PVSystem, |
|
18 | 20 | get_all_locations, |
19 | 21 | get_forecast_values, |
20 | 22 | get_latest_forecast, |
| 23 | + get_latest_input_data_last_updated, |
21 | 24 | get_latest_national_forecast, |
22 | 25 | get_location, |
23 | 26 | get_model, |
@@ -137,3 +140,20 @@ def test_get_pv_system(db_session_pv): |
137 | 140 | session=db_session_pv, provider=pv_system.provider, pv_system_id=pv_system.pv_system_id |
138 | 141 | ) |
139 | 142 | assert PVSystem.from_orm(pv_system) == PVSystem.from_orm(pv_system_get) |
| 143 | + |
| 144 | + |
| 145 | +def test_get_latest_input_data_last_updated(db_session): |
| 146 | + |
| 147 | + yesterday = datetime.now(tz=timezone.utc) - timedelta(hours=24) |
| 148 | + now = datetime.now(tz=timezone.utc) |
| 149 | + |
| 150 | + input_data_last_updated_1 = InputDataLastUpdatedSQL( |
| 151 | + gsp=yesterday, nwp=yesterday, pv=yesterday, satellite=yesterday |
| 152 | + ) |
| 153 | + input_data_last_updated_2 = InputDataLastUpdatedSQL(gsp=now, nwp=now, pv=now, satellite=now) |
| 154 | + |
| 155 | + db_session.add_all([input_data_last_updated_1, input_data_last_updated_2]) |
| 156 | + db_session.commit() |
| 157 | + |
| 158 | + input_data_last_updated = get_latest_input_data_last_updated(session=db_session) |
| 159 | + assert input_data_last_updated.gsp.replace(tzinfo=None) == now.replace(tzinfo=None) |
0 commit comments