diff --git a/app/dao/fact_billing_dao.py b/app/dao/fact_billing_dao.py index b99107a5f..132f62bf2 100644 --- a/app/dao/fact_billing_dao.py +++ b/app/dao/fact_billing_dao.py @@ -773,7 +773,7 @@ def fetch_daily_volumes_for_platform(start_date, end_date): # query to return the total notifications sent per day for each channel. NB start and end dates are inclusive daily_volume_stats = ( - db.session.query( + select( FactBilling.local_date, func.sum( case( @@ -820,7 +820,7 @@ def fetch_daily_volumes_for_platform(start_date, end_date): ) aggregated_totals = ( - db.session.query( + select( daily_volume_stats.c.local_date.cast(db.Text).label("local_date"), func.sum(daily_volume_stats.c.sms_totals).label("sms_totals"), func.sum(daily_volume_stats.c.sms_fragment_totals).label( @@ -833,10 +833,9 @@ def fetch_daily_volumes_for_platform(start_date, end_date): ) .group_by(daily_volume_stats.c.local_date) .order_by(daily_volume_stats.c.local_date) - .all() ) - return aggregated_totals + return db.session.execute(aggregated_totals).all() def fetch_daily_sms_provider_volumes_for_platform(start_date, end_date): diff --git a/tests/app/dao/test_fact_billing_dao.py b/tests/app/dao/test_fact_billing_dao.py index 49c59d48d..4b64e6b36 100644 --- a/tests/app/dao/test_fact_billing_dao.py +++ b/tests/app/dao/test_fact_billing_dao.py @@ -3,6 +3,7 @@ from decimal import Decimal import pytest from freezegun import freeze_time +from sqlalchemy import func, select from app import db from app.dao.fact_billing_dao import ( @@ -614,7 +615,8 @@ def test_delete_billing_data(notify_db_session): delete_billing_data_for_service_for_day("2018-01-01", service_1.id) - current_rows = FactBilling.query.all() + stmt = select(FactBilling) + current_rows = db.session.execute(stmt).all() assert sorted(x.billable_units for x in current_rows) == sorted( [other_day.billable_units, other_service.billable_units] ) @@ -974,8 +976,8 @@ def test_fetch_usage_year_for_organization_populates_ft_billing_for_today( free_sms_fragment_limit=10, financial_year_start=current_year, ) - - assert FactBilling.query.count() == 0 + stmt = select(func.count()).select_from(FactBilling) + assert db.session.execute(stmt).scalar() == 0 create_notification(template=template, status=NotificationStatus.DELIVERED) @@ -983,7 +985,7 @@ def test_fetch_usage_year_for_organization_populates_ft_billing_for_today( organization_id=new_org.id, year=current_year ) assert len(results) == 1 - assert FactBilling.query.count() == 1 + assert db.session.execute(stmt).scalar() == 1 @freeze_time("2022-05-01 13:30")