Merge pull request #3377 from alphagov/zero-case-performance-page

Fix division by zero error on performance page
This commit is contained in:
David McDonald
2021-11-22 13:44:32 +00:00
committed by GitHub
2 changed files with 34 additions and 2 deletions

View File

@@ -1,6 +1,7 @@
from datetime import datetime
from sqlalchemy.dialects.postgresql import insert
from sqlalchemy.sql.expression import case
from app import db
from app.dao.dao_utils import autocommit
@@ -37,8 +38,13 @@ def get_processing_time_percentage_for_date_range(start_date, end_date):
FactProcessingTime.bst_date.cast(db.Text).label("date"),
FactProcessingTime.messages_total,
FactProcessingTime.messages_within_10_secs,
((FactProcessingTime.messages_within_10_secs / FactProcessingTime.messages_total.cast(
db.Float)) * 100).label("percentage")
case([
(
FactProcessingTime.messages_total > 0,
((FactProcessingTime.messages_within_10_secs / FactProcessingTime.messages_total.cast(db.Float)) * 100)
),
(FactProcessingTime.messages_total == 0, 100.0)
]).label("percentage")
).filter(
FactProcessingTime.bst_date >= start_date,
FactProcessingTime.bst_date <= end_date