Esempio n. 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}
Esempio n. 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,
    }
Esempio n. 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}
Esempio n. 4
0
def test_relay_cursor_create(client):
    response = client.post('/relay_cursor_widgets', data={
        'size': 1,
    })

    assert get_meta(response) == {
        'cursor': 'Nw',
    }
Esempio n. 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',
    }
Esempio n. 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"))],
    }
Esempio n. 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}
Esempio n. 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}
Esempio n. 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}
Esempio n. 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}
Esempio n. 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}
Esempio n. 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}
Esempio n. 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',
    }
Esempio n. 14
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,
    }
Esempio n. 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
    }
Esempio n. 16
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,
    }
Esempio n. 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
    }
Esempio n. 18
0
def test_relay_cursor_create(client):
    response = request(
        client,
        'POST', '/relay_cursor_widgets',
        {
            'size': 1,
        },
    )

    assert get_meta(response) == {
        'cursor': 'Nw',
    }
Esempio n. 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"],
    }
Esempio n. 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"],
    }
Esempio n. 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"],
    }
Esempio n. 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"],
    }
Esempio n. 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"],
    }
Esempio n. 24
0
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,
    }
Esempio n. 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
    }
Esempio n. 26
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,
    }
Esempio n. 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
    }
Esempio n. 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
    }
Esempio n. 29
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,
    }
Esempio n. 30
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',
        ],
    }
Esempio n. 31
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',
        ],
    }
Esempio n. 32
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',
        ],
    }
Esempio n. 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',
        ],
    }
Esempio n. 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',
        ],
    }
Esempio n. 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}
Esempio n. 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}
Esempio n. 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"}
Esempio n. 38
0
def test_relay_cursor_create(client):
    response = client.post("/relay_cursor_widgets", data={"size": 1})

    assert get_meta(response) == {"cursor": "Nw"}
Esempio n. 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}