コード例 #1
0
def test_limit_offset_max_limit(client):
    response = client.get("/limit_offset_widgets?limit=5")

    assert_response(
        response,
        200,
        [
            {
                "id": "1",
                "size": 1
            },
            {
                "id": "2",
                "size": 2
            },
            {
                "id": "3",
                "size": 3
            },
            {
                "id": "4",
                "size": 1
            },
        ],
    )
    assert get_meta(response) == {"has_next_page": True}
コード例 #2
0
def test_unset_limit(client):
    response = client.get('/optional_limit_widgets')
    assert_response(response, 200, [
        {
            'id': '1',
            'size': 1,
        },
        {
            'id': '2',
            'size': 2,
        },
        {
            'id': '3',
            'size': 3,
        },
        {
            'id': '4',
            'size': 1,
        },
        {
            'id': '5',
            'size': 2,
        },
        {
            'id': '6',
            'size': 3,
        },
    ])
    assert get_meta(response) == {
        'has_next_page': False,
    }
コード例 #3
0
def test_unset_limit(client):
    response = client.get("/optional_limit_widgets")
    assert_response(
        response,
        200,
        [
            {
                "id": "1",
                "size": 1
            },
            {
                "id": "2",
                "size": 2
            },
            {
                "id": "3",
                "size": 3
            },
            {
                "id": "4",
                "size": 1
            },
            {
                "id": "5",
                "size": 2
            },
            {
                "id": "6",
                "size": 3
            },
        ],
    )
    assert get_meta(response) == {"has_next_page": False}
コード例 #4
0
ファイル: test_pagination.py プロジェクト: r1b/flask-resty
def test_relay_cursor_create(client):
    response = client.post('/relay_cursor_widgets', data={
        'size': 1,
    })

    assert get_meta(response) == {
        'cursor': 'Nw',
    }
コード例 #5
0
def test_relay_cursor_create_sorted(client):
    response = client.post('/relay_cursor_widgets?sort=size,-id', data={
        'size': 1,
    })

    assert get_meta(response) == {
        'cursor': 'MQ.Nw',
    }
コード例 #6
0
def test_relay_reverse_cursor_inverse(client, add_widgets):
    add_widgets((
        {
            "id": "1",
            "size": 2
        },
        {
            "id": "2",
            "size": 2
        },
        {
            "id": "3",
            "size": 1
        },
        {
            "id": "4",
            "size": 5
        },
        {
            "id": "5",
            "size": 3
        },
    ))

    first_three_items = [
        {
            "id": "4",
            "size": 5
        },
        {
            "id": "5",
            "size": 3
        },
        {
            "id": "2",
            "size": 2
        },
    ]

    resp = client.get("/relay_cursor_widgets?sort=-size&limit=3")
    assert_response(resp, 200, first_three_items)

    # this should be the next item in the list above
    before = encode_cursor((2, "1"))
    resp = client.get(
        f"/relay_cursor_widgets?sort=-size&limit=3&before={before}")
    assert_response(resp, 200, first_three_items)

    resp = client.get(f"/relay_cursor_widgets?sort=-size&before={before}")

    assert_response(resp, 200, first_three_items[1:])

    assert get_meta(resp) == {
        "has_next_page": True,
        "cursors": [encode_cursor((3, "5")),
                    encode_cursor((2, "2"))],
    }
コード例 #7
0
def test_limit(client):
    response = client.get("/optional_limit_widgets?limit=2")
    assert_response(response, 200, [{
        "id": "1",
        "size": 1
    }, {
        "id": "2",
        "size": 2
    }])
    assert get_meta(response) == {"has_next_page": True}
コード例 #8
0
def test_max_limit(client, data):
    response = client.get("/max_limit_widgets")
    assert_response(response, 200, [{
        "id": "1",
        "size": 1
    }, {
        "id": "2",
        "size": 2
    }])
    assert get_meta(response) == {"has_next_page": True}
コード例 #9
0
def test_limit_offset_offset_end(client):
    response = client.get("/limit_offset_widgets?offset=4")

    assert_response(response, 200, [{
        "id": "5",
        "size": 2
    }, {
        "id": "6",
        "size": 3
    }])
    assert get_meta(response) == {"has_next_page": False}
コード例 #10
0
def test_limit_offset_offset(client):
    response = client.get("/limit_offset_widgets?offset=2")

    assert_response(response, 200, [{
        "id": "3",
        "size": 3
    }, {
        "id": "4",
        "size": 1
    }])
    assert get_meta(response) == {"has_next_page": True}
コード例 #11
0
def test_page_default(client):
    response = client.get("/page_widgets")

    assert_response(response, 200, [{
        "id": "1",
        "size": 1
    }, {
        "id": "2",
        "size": 2
    }])
    assert get_meta(response) == {"has_next_page": True}
コード例 #12
0
def test_page(client):
    response = client.get("/page_widgets?page=1")

    assert_response(response, 200, [{
        "id": "3",
        "size": 3
    }, {
        "id": "4",
        "size": 1
    }])
    assert get_meta(response) == {"has_next_page": True}
コード例 #13
0
def test_relay_cursor_create_sorted(client):
    response = request(
        client,
        'POST', '/relay_cursor_widgets?sort=size,-id',
        {
            'size': 1,
        },
    )

    assert get_meta(response) == {
        'cursor': 'MQ.Nw',
    }
コード例 #14
0
ファイル: test_pagination.py プロジェクト: r1b/flask-resty
def test_limit_offset_filtered_offset(client):
    response = client.get('/limit_offset_widgets?size=2&offset=1')

    assert_response(response, 200, [
        {
            'id': '5',
            'size': 2,
        },
    ])
    assert get_meta(response) == {
        'has_next_page': False,
    }
コード例 #15
0
def test_limit_offset_offset_truncate(client):
    response = client.get('/limit_offset_widgets?offset=5')

    assert_response(response, 200, [
        {
            'id': '6',
            'size': 3,
        },
    ])
    assert get_meta(response) == {
        'has_next_page': False
    }
コード例 #16
0
ファイル: test_pagination.py プロジェクト: r1b/flask-resty
def test_limit_offset_offset_truncate(client):
    response = client.get('/limit_offset_widgets?offset=5')

    assert_response(response, 200, [
        {
            'id': '6',
            'size': 3,
        },
    ])
    assert get_meta(response) == {
        'has_next_page': False,
    }
コード例 #17
0
def test_limit_offset_filtered_offset(client):
    response = client.get('/limit_offset_widgets?size=2&offset=1')

    assert_response(response, 200, [
        {
            'id': '5',
            'size': 2,
        },
    ])
    assert get_meta(response) == {
        'has_next_page': False
    }
コード例 #18
0
def test_relay_cursor_create(client):
    response = request(
        client,
        'POST', '/relay_cursor_widgets',
        {
            'size': 1,
        },
    )

    assert get_meta(response) == {
        'cursor': 'Nw',
    }
コード例 #19
0
def test_relay_cursor_sorted_redundant(client):
    response = client.get("/relay_cursor_widgets?sort=size,id&cursor=MQ.MQ")

    assert_response(response, 200, [{
        "id": "4",
        "size": 1
    }, {
        "id": "2",
        "size": 2
    }])
    assert get_meta(response) == {
        "has_next_page": True,
        "cursors": ["MQ.NA", "Mg.Mg"],
    }
コード例 #20
0
def test_relay_cursor_sorted_default(client):
    response = client.get("/relay_cursor_widgets?sort=size")

    assert_response(response, 200, [{
        "id": "1",
        "size": 1
    }, {
        "id": "4",
        "size": 1
    }])
    assert get_meta(response) == {
        "has_next_page": True,
        "cursors": ["MQ.MQ", "MQ.NA"],
    }
コード例 #21
0
def test_relay_cursor_default(client):
    response = client.get("/relay_cursor_widgets")

    assert_response(response, 200, [{
        "id": "1",
        "size": 1
    }, {
        "id": "2",
        "size": 2
    }])
    assert get_meta(response) == {
        "has_next_page": True,
        "cursors": ["MQ", "Mg"],
    }
コード例 #22
0
def test_relay_cursor(client):
    response = client.get("/relay_cursor_widgets?cursor=MQ")

    assert_response(response, 200, [{
        "id": "2",
        "size": 2
    }, {
        "id": "3",
        "size": 3
    }])
    assert get_meta(response) == {
        "has_next_page": True,
        "cursors": ["Mg", "Mw"],
    }
コード例 #23
0
def test_relay_cursor_sorted_inverse(client):
    response = client.get("/relay_cursor_widgets?sort=-size&cursor=Mg.NQ")

    assert_response(response, 200, [{
        "id": "2",
        "size": 2
    }, {
        "id": "4",
        "size": 1
    }])
    assert get_meta(response) == {
        "has_next_page": True,
        "cursors": ["Mg.Mg", "MQ.NA"],
    }
コード例 #24
0
ファイル: test_pagination.py プロジェクト: r1b/flask-resty
def test_max_limit(client):
    response = client.get('/max_limit_widgets')
    assert_response(response, 200, [
        {
            'id': '1',
            'size': 1,
        },
        {
            'id': '2',
            'size': 2,
        },
    ])
    assert get_meta(response) == {
        'has_next_page': True,
    }
コード例 #25
0
def test_page(client):
    response = client.get('/page_widgets?page=1')

    assert_response(response, 200, [
        {
            'id': '3',
            'size': 3,
        },
        {
            'id': '4',
            'size': 1,
        },
    ])
    assert get_meta(response) == {
        'has_next_page': True
    }
コード例 #26
0
ファイル: test_pagination.py プロジェクト: r1b/flask-resty
def test_page(client):
    response = client.get('/page_widgets?page=1')

    assert_response(response, 200, [
        {
            'id': '3',
            'size': 3,
        },
        {
            'id': '4',
            'size': 1,
        },
    ])
    assert get_meta(response) == {
        'has_next_page': True,
    }
コード例 #27
0
def test_page_default(client):
    response = client.get('/page_widgets')

    assert_response(response, 200, [
        {
            'id': '1',
            'size': 1,
        },
        {
            'id': '2',
            'size': 2,
        },
    ])
    assert get_meta(response) == {
        'has_next_page': True
    }
コード例 #28
0
def test_limit_offset_offset(client):
    response = client.get('/limit_offset_widgets?offset=2')

    assert_response(response, 200, [
        {
            'id': '3',
            'size': 3,
        },
        {
            'id': '4',
            'size': 1,
        },
    ])
    assert get_meta(response) == {
        'has_next_page': True
    }
コード例 #29
0
ファイル: test_pagination.py プロジェクト: r1b/flask-resty
def test_limit_offset_offset(client):
    response = client.get('/limit_offset_widgets?offset=2')

    assert_response(response, 200, [
        {
            'id': '3',
            'size': 3,
        },
        {
            'id': '4',
            'size': 1,
        },
    ])
    assert get_meta(response) == {
        'has_next_page': True,
    }
コード例 #30
0
ファイル: test_pagination.py プロジェクト: r1b/flask-resty
def test_relay_cursor_sorted_default(client):
    response = client.get('/relay_cursor_widgets?sort=size')

    assert_response(response, 200, [
        {
            'id': '1',
            'size': 1,
        },
        {
            'id': '4',
            'size': 1,
        },
    ])
    assert get_meta(response) == {
        'has_next_page': True,
        'cursors': [
            'MQ.MQ',
            'MQ.NA',
        ],
    }
コード例 #31
0
ファイル: test_pagination.py プロジェクト: r1b/flask-resty
def test_relay_cursor_sorted_inverse(client):
    response = client.get('/relay_cursor_widgets?sort=-size&cursor=Mg.NQ')

    assert_response(response, 200, [
        {
            'id': '2',
            'size': 2,
        },
        {
            'id': '4',
            'size': 1,
        },
    ])
    assert get_meta(response) == {
        'has_next_page': True,
        'cursors': [
            'Mg.Mg',
            'MQ.NA',
        ],
    }
コード例 #32
0
ファイル: test_pagination.py プロジェクト: r1b/flask-resty
def test_relay_cursor(client):
    response = client.get('/relay_cursor_widgets?cursor=MQ')

    assert_response(response, 200, [
        {
            'id': '2',
            'size': 2,
        },
        {
            'id': '3',
            'size': 3,
        },
    ])
    assert get_meta(response) == {
        'has_next_page': True,
        'cursors': [
            'Mg',
            'Mw',
        ],
    }
コード例 #33
0
def test_relay_cursor_sorted_default(client):
    response = client.get('/relay_cursor_widgets?sort=size,-id')

    assert_response(response, 200, [
        {
            'id': '4',
            'size': 1,
        },
        {
            'id': '1',
            'size': 1,
        },
    ])
    assert get_meta(response) == {
        'has_next_page': True,
        'cursors': [
            'MQ.NA',
            'MQ.MQ',
        ],
    }
コード例 #34
0
def test_relay_cursor_default(client):
    response = client.get('/relay_cursor_widgets')

    assert_response(response, 200, [
        {
            'id': '1',
            'size': 1,
        },
        {
            'id': '2',
            'size': 2,
        },
    ])
    assert get_meta(response) == {
        'has_next_page': True,
        'cursors': [
            'MQ',
            'Mg',
        ],
    }
コード例 #35
0
def test_limit_offset_filtered_offset(client):
    response = client.get("/limit_offset_widgets?size=2&offset=1")

    assert_response(response, 200, [{"id": "5", "size": 2}])
    assert get_meta(response) == {"has_next_page": False}
コード例 #36
0
def test_limit_offset_filtered(client, data):
    response = client.get("/limit_offset_widgets?size=2&limit=1")

    assert_response(response, 200, [{"id": "2", "size": 2}])
    assert get_meta(response) == {"has_next_page": True}
コード例 #37
0
def test_relay_cursor_create_sorted(client):
    response = client.post("/relay_cursor_widgets?sort=size", data={"size": 1})

    assert_response(response, 201, {"size": 1})
    assert get_meta(response) == {"cursor": "MQ.Nw"}
コード例 #38
0
def test_relay_cursor_create(client):
    response = client.post("/relay_cursor_widgets", data={"size": 1})

    assert get_meta(response) == {"cursor": "Nw"}
コード例 #39
0
def test_limit_offset_offset_truncate(client, data):
    response = client.get("/limit_offset_widgets?offset=5")

    assert_response(response, 200, [{"id": "6", "size": 3}])
    assert get_meta(response) == {"has_next_page": False}