mirror of
https://github.com/GSA/notifications-api.git
synced 2026-02-04 02:11:11 -05:00
Added joins to template, job and user for returned letter query.
Added unit tests Comleted endpoint to get returned letter details
This commit is contained in:
@@ -6,7 +6,7 @@ from app.dao.returned_letters_dao import (
|
||||
insert_or_update_returned_letters, get_returned_letter_summary,
|
||||
fetch_returned_letters
|
||||
)
|
||||
from app.models import ReturnedLetter
|
||||
from app.models import ReturnedLetter, NOTIFICATION_RETURNED_LETTER
|
||||
from tests.app.db import create_notification, create_notification_history, create_returned_letter
|
||||
|
||||
|
||||
@@ -121,14 +121,62 @@ def test_get_returned_letter_summary_orders_by_reported_at(sample_service):
|
||||
assert results[1].returned_letter_count == 2
|
||||
|
||||
|
||||
def test_fetch_returned_letters(sample_service):
|
||||
def test_fetch_returned_letters_from_notifications_and_notification_history(sample_letter_template):
|
||||
today = datetime.now()
|
||||
last_month = datetime.now() - timedelta(days=30)
|
||||
|
||||
create_returned_letter(service=sample_service, reported_at=today)
|
||||
create_returned_letter(service=sample_service, reported_at=today)
|
||||
create_returned_letter(service=sample_service, reported_at=last_month)
|
||||
letter_1 = create_notification(template=sample_letter_template, client_reference='letter_1',
|
||||
status=NOTIFICATION_RETURNED_LETTER,
|
||||
created_at=datetime.utcnow() - timedelta(days=1))
|
||||
returned_letter_1 = create_returned_letter(service=sample_letter_template.service, reported_at=today,
|
||||
notification_id=letter_1.id)
|
||||
letter_2 = create_notification_history(template=sample_letter_template, client_reference='letter_2',
|
||||
status=NOTIFICATION_RETURNED_LETTER, created_at=datetime.utcnow())
|
||||
returned_letter_2 = create_returned_letter(service=sample_letter_template.service, reported_at=today,
|
||||
notification_id=letter_2.id)
|
||||
letter_3 = create_notification_history(template=sample_letter_template, client_reference='letter_3',
|
||||
status=NOTIFICATION_RETURNED_LETTER)
|
||||
create_returned_letter(service=sample_letter_template.service, reported_at=last_month,
|
||||
notification_id=letter_3.id)
|
||||
|
||||
results = fetch_returned_letters(service_id=sample_service.id, report_date=today.date())
|
||||
results = fetch_returned_letters(service_id=sample_letter_template.service_id, report_date=today.date())
|
||||
|
||||
assert len(results) == 2
|
||||
assert results[0] == (letter_2.id, returned_letter_2.reported_at, letter_2.client_reference, letter_2.created_at,
|
||||
sample_letter_template.name, letter_2.template_id, letter_2.template_version,
|
||||
letter_2.created_by_id, None, None, None)
|
||||
assert results[1] == (letter_1.id, returned_letter_1.reported_at, letter_1.client_reference, letter_1.created_at,
|
||||
sample_letter_template.name, letter_1.template_id, letter_1.template_version,
|
||||
letter_1.created_by_id, None, None, None)
|
||||
|
||||
|
||||
def test_fetch_returned_letters_with_jobs(sample_letter_job):
|
||||
today = datetime.now()
|
||||
letter_1 = create_notification_history(template=sample_letter_job.template, client_reference='letter_1',
|
||||
status=NOTIFICATION_RETURNED_LETTER,
|
||||
job=sample_letter_job, job_row_number=20,
|
||||
created_at=datetime.utcnow() - timedelta(minutes=1))
|
||||
returned_letter_1 = create_returned_letter(service=sample_letter_job.service, reported_at=today,
|
||||
notification_id=letter_1.id)
|
||||
|
||||
results = fetch_returned_letters(service_id=sample_letter_job.service_id, report_date=today.date())
|
||||
assert len(results) == 1
|
||||
assert results[0] == (letter_1.id, returned_letter_1.reported_at, letter_1.client_reference, letter_1.created_at,
|
||||
sample_letter_job.template.name, letter_1.template_id, letter_1.template_version,
|
||||
letter_1.created_by_id, None, sample_letter_job.original_file_name, letter_1.job_row_number)
|
||||
|
||||
|
||||
def test_fetch_returned_letters_with_create_by_user(sample_letter_template):
|
||||
today = datetime.now()
|
||||
letter_1 = create_notification_history(template=sample_letter_template, client_reference='letter_1',
|
||||
status=NOTIFICATION_RETURNED_LETTER,
|
||||
created_at=datetime.utcnow() - timedelta(minutes=1),
|
||||
created_by_id=sample_letter_template.service.users[0].id)
|
||||
returned_letter_1 = create_returned_letter(service=sample_letter_template.service, reported_at=today,
|
||||
notification_id=letter_1.id)
|
||||
|
||||
results = fetch_returned_letters(service_id=sample_letter_template.service_id, report_date=today.date())
|
||||
assert len(results) == 1
|
||||
assert results[0] == (letter_1.id, returned_letter_1.reported_at, letter_1.client_reference, letter_1.created_at,
|
||||
sample_letter_template.name, letter_1.template_id, letter_1.template_version,
|
||||
letter_1.created_by_id, sample_letter_template.service.users[0].name, None, None)
|
||||
|
||||
Reference in New Issue
Block a user