Пример #1
0
def cancel_notification_for_service(service_id, notification_id):
    notification = notifications_dao.get_notification_by_id(
        notification_id, service_id)

    if not notification:
        raise InvalidRequest('Notification not found', status_code=404)
    elif notification.notification_type != LETTER_TYPE:
        raise InvalidRequest(
            'Notification cannot be cancelled - only letters can be cancelled',
            status_code=400)
    elif not letter_can_be_cancelled(notification.status,
                                     notification.created_at):
        print_day = letter_print_day(notification.created_at)

        raise InvalidRequest(
            "It’s too late to cancel this letter. Printing started {} at 5.30pm"
            .format(print_day),
            status_code=400)

    updated_notification = notifications_dao.update_notification_status_by_id(
        notification_id,
        NOTIFICATION_CANCELLED,
    )

    return jsonify(
        notification_with_template_schema.dump(updated_notification).data), 200
Пример #2
0
def test_letter_print_day_returns_today_if_letter_was_printed_today():
    created_at = datetime(2017, 7, 7, 12, 0)
    assert letter_print_day(created_at) == "today"
Пример #3
0
def test_letter_print_day_returns_formatted_date_if_letter_printed_before_1730_yesterday(
        created_at, formatted_date):
    assert letter_print_day(created_at) == formatted_date
Пример #4
0
def test_letter_print_day_returns_today_if_letter_was_printed_after_1730_yesterday(
):
    created_at = datetime(2017, 7, 6, 17, 30)
    assert letter_print_day(created_at) == "today"