Merge remote-tracking branch 'origin/dev' into feat/service-de-scoring
This commit is contained in:
@@ -88,6 +88,73 @@ async def test_latest_by_site_returns_one_row_per_site(session: AsyncSession) ->
|
||||
assert identifiants == {premier, second}
|
||||
|
||||
|
||||
async def test_latest_by_site_breaks_a_timestamp_tie_on_the_last_written_reading(
|
||||
session: AsyncSession,
|
||||
) -> None:
|
||||
site = await creer_site(session)
|
||||
depot = ReadingRepository(session)
|
||||
horodatage = datetime(2026, 9, 15, tzinfo=UTC)
|
||||
await creer_lecture(
|
||||
session, site_id=site.site_id, timestamp=horodatage, source="api_history", consumption_kw=10
|
||||
)
|
||||
derniere = await creer_lecture(
|
||||
session, site_id=site.site_id, timestamp=horodatage, source="api_current", consumption_kw=42
|
||||
)
|
||||
|
||||
resultats = await depot.latest_by_site()
|
||||
retenues = [r.reading_id for r in resultats if r.site_id == site.site_id]
|
||||
await session.rollback()
|
||||
|
||||
assert retenues == [derniere.reading_id]
|
||||
|
||||
|
||||
async def test_latest_for_site_returns_the_most_recent_reading(session: AsyncSession) -> None:
|
||||
site = await creer_site(session)
|
||||
depot = ReadingRepository(session)
|
||||
await creer_lecture(session, site_id=site.site_id, timestamp=datetime(2026, 9, 1, tzinfo=UTC))
|
||||
recente = await creer_lecture(
|
||||
session, site_id=site.site_id, timestamp=datetime(2026, 9, 15, tzinfo=UTC)
|
||||
)
|
||||
|
||||
trouvee = await depot.latest_for_site(site.site_id)
|
||||
reading_id = trouvee.reading_id if trouvee else None
|
||||
await session.rollback()
|
||||
|
||||
assert reading_id == recente.reading_id
|
||||
|
||||
|
||||
async def test_latest_for_site_breaks_a_timestamp_tie_on_the_last_written_reading(
|
||||
session: AsyncSession,
|
||||
) -> None:
|
||||
site = await creer_site(session)
|
||||
depot = ReadingRepository(session)
|
||||
horodatage = datetime(2026, 9, 15, tzinfo=UTC)
|
||||
await creer_lecture(session, site_id=site.site_id, timestamp=horodatage, source="api_history")
|
||||
derniere = await creer_lecture(
|
||||
session, site_id=site.site_id, timestamp=horodatage, source="api_current"
|
||||
)
|
||||
|
||||
trouvee = await depot.latest_for_site(site.site_id)
|
||||
reading_id = trouvee.reading_id if trouvee else None
|
||||
await session.rollback()
|
||||
|
||||
assert reading_id == derniere.reading_id
|
||||
|
||||
|
||||
async def test_latest_for_site_ignores_the_readings_of_the_other_sites(
|
||||
session: AsyncSession,
|
||||
) -> None:
|
||||
sans_lecture = await creer_site(session)
|
||||
autre = await creer_site(session)
|
||||
depot = ReadingRepository(session)
|
||||
await creer_lecture(session, site_id=autre.site_id)
|
||||
|
||||
trouvee = await depot.latest_for_site(sans_lecture.site_id)
|
||||
await session.rollback()
|
||||
|
||||
assert trouvee is None
|
||||
|
||||
|
||||
async def test_list_history_orders_the_readings_by_timestamp_descending(
|
||||
session: AsyncSession,
|
||||
) -> None:
|
||||
|
||||
Reference in New Issue
Block a user