Remove letters-related code (#175)

This deletes a big ol' chunk of code related to letters. It's not everything—there are still a few things that might be tied to sms/email—but it's the the heart of letters function. SMS and email function should be untouched by this.

Areas affected:

- Things obviously about letters
- PDF tasks, used for precompiling letters
- Virus scanning, used for those PDFs
- FTP, used to send letters to the printer
- Postage stuff
This commit is contained in:
Steven Reilly
2023-03-02 20:20:31 -05:00
committed by GitHub
parent b07b95f795
commit ff4190a8eb
141 changed files with 1108 additions and 12083 deletions

View File

@@ -1,11 +1,9 @@
from datetime import datetime, timedelta
import pytest
from freezegun import freeze_time
from app.dao.uploads_dao import (
dao_get_uploaded_letters_by_print_date,
dao_get_uploads_by_service_id,
)
from app.dao.uploads_dao import dao_get_uploads_by_service_id
from app.models import JOB_STATUS_IN_PROGRESS, LETTER_TYPE
from tests.app.db import (
create_job,
@@ -38,10 +36,10 @@ def create_uploaded_template(service):
subject='Pre-compiled PDF',
content="",
hidden=True,
postage="second",
)
@pytest.mark.skip(reason="Investigate what remains after removing letters")
@freeze_time("2020-02-02 09:00") # GMT time
def test_get_uploads_for_service(sample_template):
create_service_data_retention(sample_template.service, 'sms', days_of_retention=9)
@@ -119,6 +117,7 @@ def test_get_uploads_for_service(sample_template):
assert uploads_from_db[1] != other_uploads_from_db[1]
@pytest.mark.skip(reason="Investigate what remains after removing letters")
@freeze_time("2020-02-02 18:00")
def test_get_uploads_for_service_groups_letters(sample_template):
letter_template = create_uploaded_template(sample_template.service)
@@ -158,6 +157,7 @@ def test_get_uploads_for_service_groups_letters(sample_template):
]
@pytest.mark.skip(reason="Investigate what remains after removing letters")
def test_get_uploads_does_not_return_cancelled_jobs_or_letters(sample_template):
create_job(sample_template, job_status='scheduled')
create_job(sample_template, job_status='cancelled')
@@ -167,6 +167,7 @@ def test_get_uploads_does_not_return_cancelled_jobs_or_letters(sample_template):
assert len(dao_get_uploads_by_service_id(sample_template.service_id).items) == 0
@pytest.mark.skip(reason="Investigate what remains after removing letters")
def test_get_uploads_orders_by_created_at_desc(sample_template):
letter_template = create_uploaded_template(sample_template.service)
@@ -187,6 +188,7 @@ def test_get_uploads_orders_by_created_at_desc(sample_template):
]
@pytest.mark.skip(reason="Investigate what remains after removing letters")
def test_get_uploads_orders_by_processing_started_desc(sample_template):
days_ago = datetime.utcnow() - timedelta(days=3)
upload_1 = create_job(sample_template, processing_started=datetime.utcnow() - timedelta(days=1),
@@ -203,6 +205,7 @@ def test_get_uploads_orders_by_processing_started_desc(sample_template):
assert results[1].id == upload_2.id
@pytest.mark.skip(reason="Investigate what remains after removing letters")
@freeze_time("2020-10-27 16:15") # GMT time
def test_get_uploads_orders_by_processing_started_and_created_at_desc(sample_template):
letter_template = create_uploaded_template(sample_template.service)
@@ -227,6 +230,7 @@ def test_get_uploads_orders_by_processing_started_and_created_at_desc(sample_tem
assert results[3].id is None
@pytest.mark.skip(reason="Investigate what remains after removing letters")
@freeze_time('2020-04-02 14:00') # Few days after the clocks go forward
def test_get_uploads_only_gets_uploads_within_service_retention_period(sample_template):
letter_template = create_uploaded_template(sample_template.service)
@@ -276,6 +280,7 @@ def test_get_uploads_only_gets_uploads_within_service_retention_period(sample_te
assert results[3].created_at == upload_4.created_at.replace(hour=21, minute=30, second=0, microsecond=0)
@pytest.mark.skip(reason="Investigate what remains after removing letters")
@freeze_time('2020-02-02 14:00')
def test_get_uploads_is_paginated(sample_template):
letter_template = create_uploaded_template(sample_template.service)
@@ -314,59 +319,7 @@ def test_get_uploads_is_paginated(sample_template):
assert results.items[0].upload_type == 'job'
@pytest.mark.skip(reason="Investigate what remains after removing letters")
def test_get_uploads_returns_empty_list(sample_service):
items = dao_get_uploads_by_service_id(sample_service.id).items
assert items == []
@freeze_time('2020-02-02 14:00')
def test_get_uploaded_letters_by_print_date(sample_template):
letter_template = create_uploaded_template(sample_template.service)
# Letters for the previous days run
for _ in range(3):
create_uploaded_letter(
letter_template, sample_template.service, status='delivered',
created_at=datetime.utcnow().replace(day=1, hour=22, minute=29, second=59)
)
# Letters from yesterday that rolled into todays run
for _ in range(30):
create_uploaded_letter(
letter_template, sample_template.service, status='delivered',
created_at=datetime.utcnow().replace(day=1, hour=22, minute=30, second=0)
)
# Letters that just made todays run
for _ in range(30):
create_uploaded_letter(
letter_template, sample_template.service, status='delivered',
created_at=datetime.utcnow().replace(hour=22, minute=29, second=59)
)
# Letters that just missed todays run
for _ in range(3):
create_uploaded_letter(
letter_template, sample_template.service, status='delivered',
created_at=datetime.utcnow().replace(hour=22, minute=30, second=0)
)
result = dao_get_uploaded_letters_by_print_date(
sample_template.service_id,
datetime.utcnow(),
)
assert result.total == 60
assert len(result.items) == 50
assert result.has_next is True
assert result.has_prev is False
result = dao_get_uploaded_letters_by_print_date(
sample_template.service_id,
datetime.utcnow(),
page=10,
page_size=2,
)
assert result.total == 60
assert len(result.items) == 2
assert result.has_next is True
assert result.has_prev is True