mirror of
https://github.com/GSA/notifications-api.git
synced 2026-02-04 10:21:14 -05:00
Fix the query.
Missing the where clause to join the two tables.... OOPS
This commit is contained in:
@@ -245,5 +245,5 @@ def check_for_missing_rows_in_completed_jobs():
|
|||||||
recipient_csv, template = get_recipient_csv_and_template(job)
|
recipient_csv, template = get_recipient_csv_and_template(job)
|
||||||
for row in recipient_csv.get_rows():
|
for row in recipient_csv.get_rows():
|
||||||
if row.index == row_to_process.missing_row:
|
if row.index == row_to_process.missing_row:
|
||||||
current_app.logger.info("Processing row: {} for job: {}")
|
current_app.logger.info("Processing missing row: {} for job: {}")
|
||||||
process_row(row, template, job, job.service)
|
process_row(row, template, job, job.service)
|
||||||
|
|||||||
@@ -195,11 +195,12 @@ def find_jobs_with_missing_rows():
|
|||||||
# Using 10 minutes as a condition seems reasonable.
|
# Using 10 minutes as a condition seems reasonable.
|
||||||
ten_minutes_ago = datetime.utcnow() - timedelta(minutes=10)
|
ten_minutes_ago = datetime.utcnow() - timedelta(minutes=10)
|
||||||
jobs_with_rows_missing = db.session.query(
|
jobs_with_rows_missing = db.session.query(
|
||||||
func.count(Notification.id).label('count_notifications'),
|
func.count(Notification.id).label('actual_count'),
|
||||||
Job
|
Job
|
||||||
).filter(
|
).filter(
|
||||||
Job.job_status == JOB_STATUS_FINISHED,
|
Job.job_status == JOB_STATUS_FINISHED,
|
||||||
Job.processing_finished < ten_minutes_ago
|
Job.processing_finished < ten_minutes_ago,
|
||||||
|
Job.id == Notification.job_id
|
||||||
).group_by(
|
).group_by(
|
||||||
Job
|
Job
|
||||||
).having(
|
).having(
|
||||||
|
|||||||
@@ -416,19 +416,26 @@ def test_can_letter_job_be_cancelled_returns_false_and_error_message_if_notifica
|
|||||||
|
|
||||||
|
|
||||||
def test_find_jobs_with_missing_rows(sample_email_template):
|
def test_find_jobs_with_missing_rows(sample_email_template):
|
||||||
job = create_job(template=sample_email_template,
|
healthy_job = create_job(template=sample_email_template,
|
||||||
|
notification_count=3,
|
||||||
|
job_status=JOB_STATUS_FINISHED,
|
||||||
|
processing_finished=datetime.utcnow() - timedelta(minutes=11)
|
||||||
|
)
|
||||||
|
for i in range(0, 3):
|
||||||
|
create_notification(job=healthy_job, job_row_number=i)
|
||||||
|
job_with_missing_rows = create_job(template=sample_email_template,
|
||||||
notification_count=5,
|
notification_count=5,
|
||||||
job_status=JOB_STATUS_FINISHED,
|
job_status=JOB_STATUS_FINISHED,
|
||||||
processing_finished=datetime.utcnow() - timedelta(minutes=11)
|
processing_finished=datetime.utcnow() - timedelta(minutes=11)
|
||||||
)
|
)
|
||||||
for i in range(0, 4):
|
for i in range(0, 4):
|
||||||
create_notification(job=job, job_row_number=i)
|
create_notification(job=job_with_missing_rows, job_row_number=i)
|
||||||
|
|
||||||
results = find_jobs_with_missing_rows()
|
results = find_jobs_with_missing_rows()
|
||||||
|
|
||||||
assert len(results) == 1
|
assert len(results) == 1
|
||||||
assert results[0][0] == 4
|
assert results[0].actual_count == 4
|
||||||
assert results[0][1] == job
|
assert results[0][1] == job_with_missing_rows
|
||||||
|
|
||||||
|
|
||||||
def test_find_jobs_with_missing_rows_returns_nothing_for_a_job_completed_less_than_10_minutes_ago(
|
def test_find_jobs_with_missing_rows_returns_nothing_for_a_job_completed_less_than_10_minutes_ago(
|
||||||
|
|||||||
Reference in New Issue
Block a user