Exemplo n.º 1
0
def cancel_letter_job(service_id, job_id):
    job = dao_get_job_by_service_id_and_job_id(service_id, job_id)
    can_we_cancel, errors = can_letter_job_be_cancelled(job)
    if can_we_cancel:
        data = dao_cancel_letter_job(job)
        return jsonify(data), 200
    else:
        return jsonify(message=errors), 400
Exemplo n.º 2
0
def test_can_letter_job_be_cancelled_returns_false_and_error_message_if_notifications_not_in_db_yet(
    sample_letter_template
):
    job = create_job(template=sample_letter_template, notification_count=2, job_status='finished')
    create_notification(template=job.template, job=job, status='created')
    result, errors = can_letter_job_be_cancelled(job)
    assert not result
    assert errors == "We are still processing these letters, please try again in a minute."
Exemplo n.º 3
0
def test_can_letter_job_be_cancelled_returns_false_and_error_message_if_not_a_letter_job(
    sample_template
):
    job = create_job(template=sample_template, notification_count=1, job_status='finished')
    create_notification(template=job.template, job=job, status='created')
    result, errors = can_letter_job_be_cancelled(job)
    assert not result
    assert errors == "Only letter jobs can be cancelled through this endpoint. This is not a letter job."
Exemplo n.º 4
0
def test_can_letter_job_be_cancelled_returns_true_if_job_can_be_cancelled(
        sample_letter_template):
    job = create_job(template=sample_letter_template,
                     notification_count=1,
                     job_status='finished')
    create_notification(template=job.template, job=job, status='created')
    result, errors = can_letter_job_be_cancelled(job)
    assert result
    assert not errors
Exemplo n.º 5
0
def test_can_letter_job_be_cancelled_respects_bst(sample_letter_template):
    job = create_job(template=sample_letter_template, created_at=datetime(2020, 4, 9, 23, 30), job_status='finished')
    create_notification(template=job.template, job=job, status='created', created_at=datetime(2020, 4, 9, 23, 32))

    with freeze_time('2020-04-10 10:00'):
        result, errors = can_letter_job_be_cancelled(job)

    assert not errors
    assert result
Exemplo n.º 6
0
def test_can_letter_job_be_cancelled_returns_false_and_error_message_if_notification_status_sending(
    sample_letter_template
):
    job = create_job(template=sample_letter_template, notification_count=2, job_status='finished')
    create_notification(template=job.template, job=job, status='sending')
    create_notification(template=job.template, job=job, status='created')
    result, errors = can_letter_job_be_cancelled(job)
    assert not result
    assert errors == "It’s too late to cancel sending, these letters have already been sent."
Exemplo n.º 7
0
def test_can_letter_job_be_cancelled_returns_false_and_error_message_if_letters_already_sent_to_dvla(
    sample_letter_template
):
    with freeze_time('2019-06-13 13:00'):
        job = create_job(template=sample_letter_template, notification_count=1, job_status='finished')
        letter = create_notification(template=job.template, job=job, status='created')

    with freeze_time('2019-06-13 17:32'):
        result, errors = can_letter_job_be_cancelled(job)
    assert not result
    assert errors == "It’s too late to cancel sending, these letters have already been sent."
    assert letter.status == 'created'
    assert job.job_status == 'finished'