示例#1
0
def test_most_recent_inbound_sms_paginates_properly(notify_api, sample_service):
    create_inbound_sms(sample_service, user_number='+447800900111', content='111 1', created_at=datetime(2017, 1, 1))
    create_inbound_sms(sample_service, user_number='+447800900111', content='111 2', created_at=datetime(2017, 1, 2))
    create_inbound_sms(sample_service, user_number='+447800900222', content='222 1', created_at=datetime(2017, 1, 3))
    create_inbound_sms(sample_service, user_number='+447800900222', content='222 2', created_at=datetime(2017, 1, 4))
    create_inbound_sms(sample_service, user_number='+447800900333', content='333 1', created_at=datetime(2017, 1, 5))
    create_inbound_sms(sample_service, user_number='+447800900333', content='333 2', created_at=datetime(2017, 1, 6))
    create_inbound_sms(sample_service, user_number='+447800900444', content='444 1', created_at=datetime(2017, 1, 7))
    create_inbound_sms(sample_service, user_number='+447800900444', content='444 2', created_at=datetime(2017, 1, 8))

    with set_config(notify_api, 'PAGE_SIZE', 2):
        # first page has most recent 444 and 333
        res = dao_get_paginated_most_recent_inbound_sms_by_user_number_for_service(sample_service.id, page=1)
        assert len(res.items) == 2
        assert res.has_next is True
        assert res.per_page == 2
        assert res.items[0].content == '444 2'
        assert res.items[1].content == '333 2'

        # second page has no 444 or 333 - just most recent 222 and 111
        res = dao_get_paginated_most_recent_inbound_sms_by_user_number_for_service(sample_service.id, page=2)
        assert len(res.items) == 2
        assert res.has_next is False
        assert res.items[0].content == '222 2'
        assert res.items[1].content == '111 2'
示例#2
0
文件: rest.py 项目: trodjr/notify
def get_most_recent_inbound_sms_for_service(service_id):
    # used on the service inbox page
    page = request.args.get('page', 1)
    # get most recent message for each user for service

    results = dao_get_paginated_most_recent_inbound_sms_by_user_number_for_service(
        service_id, int(page))
    return jsonify(data=[row.serialize() for row in results.items],
                   has_next=results.has_next)
示例#3
0
def test_most_recent_inbound_sms_only_returns_most_recent_for_each_number(
        notify_api, sample_service):
    create_inbound_sms(
        sample_service,
        user_number="447700900111",
        content="111 1",
        created_at=datetime(2017, 1, 1),
    )
    create_inbound_sms(
        sample_service,
        user_number="447700900111",
        content="111 2",
        created_at=datetime(2017, 1, 2),
    )
    create_inbound_sms(
        sample_service,
        user_number="447700900111",
        content="111 3",
        created_at=datetime(2017, 1, 3),
    )
    create_inbound_sms(
        sample_service,
        user_number="447700900111",
        content="111 4",
        created_at=datetime(2017, 1, 4),
    )
    create_inbound_sms(
        sample_service,
        user_number="447700900111",
        content="111 5",
        created_at=datetime(2017, 1, 5),
    )
    create_inbound_sms(
        sample_service,
        user_number="447700900222",
        content="222 1",
        created_at=datetime(2017, 1, 1),
    )
    create_inbound_sms(
        sample_service,
        user_number="447700900222",
        content="222 2",
        created_at=datetime(2017, 1, 2),
    )

    with set_config(notify_api, "PAGE_SIZE", 3):
        with freeze_time("2017-01-02"):
            res = dao_get_paginated_most_recent_inbound_sms_by_user_number_for_service(
                sample_service.id, limit_days=7, page=1)  # noqa

    assert len(res.items) == 2
    assert res.has_next is False
    assert res.per_page == 3
    assert res.items[0].content == "111 5"
    assert res.items[1].content == "222 2"
示例#4
0
def get_most_recent_inbound_sms_for_service(service_id):
    # used on the service inbox page
    page = request.args.get("page", 1)

    inbound_data_retention = fetch_service_data_retention_by_notification_type(
        service_id, "sms")
    limit_days = inbound_data_retention.days_of_retention if inbound_data_retention else 7

    # get most recent message for each user for service
    results = dao_get_paginated_most_recent_inbound_sms_by_user_number_for_service(
        service_id, int(page), limit_days)
    return jsonify(data=[row.serialize() for row in results.items],
                   has_next=results.has_next)
示例#5
0
def test_most_recent_inbound_sms_only_returns_values_within_7_days(
        notify_api, sample_service):
    create_inbound_sms(sample_service,
                       user_number='447700900111',
                       content='111 1',
                       created_at=datetime(2017, 4, 1))
    create_inbound_sms(sample_service,
                       user_number='447700900111',
                       content='111 2',
                       created_at=datetime(2017, 4, 1))
    create_inbound_sms(sample_service,
                       user_number='447700900222',
                       content='222 1',
                       created_at=datetime(2017, 4, 1))
    create_inbound_sms(sample_service,
                       user_number='447700900222',
                       content='222 2',
                       created_at=datetime(2017, 4, 1))
    create_inbound_sms(sample_service,
                       user_number='447700900333',
                       content='333 1',
                       created_at=datetime(2017, 4, 2))
    create_inbound_sms(sample_service,
                       user_number='447700900333',
                       content='333 2',
                       created_at=datetime(2017, 4, 3))
    create_inbound_sms(sample_service,
                       user_number='447700900444',
                       content='444 1',
                       created_at=datetime(2017, 4, 4))
    create_inbound_sms(sample_service,
                       user_number='447700900444',
                       content='444 2',
                       created_at=datetime(2017, 4, 5))

    # 7 days ago BST midnight
    create_inbound_sms(sample_service,
                       user_number='447700900666',
                       content='666 1',
                       created_at='2017-04-02T23:00:00')

    with freeze_time('2017-04-09T12:00:00'):
        res = dao_get_paginated_most_recent_inbound_sms_by_user_number_for_service(
            sample_service.id, page=1)

    assert len(res.items) == 3
    assert res.items[0].content == '444 2'
    assert res.items[1].content == '333 2'
    assert res.items[2].content == '666 1'
示例#6
0
def test_most_recent_inbound_sms_only_returns_most_recent_for_each_number(notify_api, sample_service):
    create_inbound_sms(sample_service, user_number='+447800900111', content='111 1', created_at=datetime(2017, 1, 1))
    create_inbound_sms(sample_service, user_number='+447800900111', content='111 2', created_at=datetime(2017, 1, 2))
    create_inbound_sms(sample_service, user_number='+447800900111', content='111 3', created_at=datetime(2017, 1, 3))
    create_inbound_sms(sample_service, user_number='+447800900111', content='111 4', created_at=datetime(2017, 1, 4))
    create_inbound_sms(sample_service, user_number='+447800900111', content='111 5', created_at=datetime(2017, 1, 5))
    create_inbound_sms(sample_service, user_number='+447800900222', content='222 1', created_at=datetime(2017, 1, 1))
    create_inbound_sms(sample_service, user_number='+447800900222', content='222 2', created_at=datetime(2017, 1, 2))

    with set_config(notify_api, 'PAGE_SIZE', 3):
        res = dao_get_paginated_most_recent_inbound_sms_by_user_number_for_service(sample_service.id, page=1)

    assert len(res.items) == 2
    assert res.has_next is False
    assert res.per_page == 3
    assert res.items[0].content == '111 5'
    assert res.items[1].content == '222 2'
示例#7
0
def test_most_recent_inbound_sms_only_returns_values_within_7_days(
        sample_service):
    # just out of bounds
    create_inbound_sms(sample_service,
                       user_number='1',
                       content='old',
                       created_at=datetime(2017, 4, 2, 22, 59, 59))
    # just in bounds
    create_inbound_sms(sample_service,
                       user_number='2',
                       content='new',
                       created_at=datetime(2017, 4, 2, 23, 0, 0))

    with freeze_time('Monday 10th April 2017 12:00:00'):
        res = dao_get_paginated_most_recent_inbound_sms_by_user_number_for_service(
            sample_service.id, limit_days=7, page=1)  # noqa

    assert len(res.items) == 1
    assert res.items[0].content == 'new'
示例#8
0
def test_most_recent_inbound_sms_only_returns_values_within_7_days(
        sample_service):
    # just out of bounds
    create_inbound_sms(
        sample_service,
        user_number="1",
        content="old",
        created_at=datetime(2017, 4, 3, 3, 59, 59),
    )
    # just in bounds
    create_inbound_sms(
        sample_service,
        user_number="2",
        content="new",
        created_at=datetime(2017, 4, 3, 4, 0, 0),
    )

    with freeze_time("Monday 10th April 2017 12:00:00"):
        res = dao_get_paginated_most_recent_inbound_sms_by_user_number_for_service(
            sample_service.id, limit_days=7, page=1)  # noqa

    assert len(res.items) == 1
    assert res.items[0].content == "new"
示例#9
0
def test_most_recent_inbound_sms_paginates_properly(notify_api,
                                                    sample_service):
    create_inbound_sms(
        sample_service,
        user_number="447700900111",
        content="111 1",
        created_at=datetime(2017, 1, 1),
    )
    create_inbound_sms(
        sample_service,
        user_number="447700900111",
        content="111 2",
        created_at=datetime(2017, 1, 2),
    )
    create_inbound_sms(
        sample_service,
        user_number="447700900222",
        content="222 1",
        created_at=datetime(2017, 1, 3),
    )
    create_inbound_sms(
        sample_service,
        user_number="447700900222",
        content="222 2",
        created_at=datetime(2017, 1, 4),
    )
    create_inbound_sms(
        sample_service,
        user_number="447700900333",
        content="333 1",
        created_at=datetime(2017, 1, 5),
    )
    create_inbound_sms(
        sample_service,
        user_number="447700900333",
        content="333 2",
        created_at=datetime(2017, 1, 6),
    )
    create_inbound_sms(
        sample_service,
        user_number="447700900444",
        content="444 1",
        created_at=datetime(2017, 1, 7),
    )
    create_inbound_sms(
        sample_service,
        user_number="447700900444",
        content="444 2",
        created_at=datetime(2017, 1, 8),
    )

    with set_config(notify_api, "PAGE_SIZE", 2):
        with freeze_time("2017-01-02"):
            # first page has most recent 444 and 333
            res = dao_get_paginated_most_recent_inbound_sms_by_user_number_for_service(
                sample_service.id, limit_days=7, page=1)  # noqa
            assert len(res.items) == 2
            assert res.has_next is True
            assert res.per_page == 2
            assert res.items[0].content == "444 2"
            assert res.items[1].content == "333 2"

            # second page has no 444 or 333 - just most recent 222 and 111
            res = dao_get_paginated_most_recent_inbound_sms_by_user_number_for_service(
                sample_service.id, limit_days=7, page=2)  # noqa
            assert len(res.items) == 2
            assert res.has_next is False
            assert res.items[0].content == "222 2"
            assert res.items[1].content == "111 2"