Esempio n. 1
0
def _validate_paging(
    response: requests.Response,
    expected_paging: Optional[PagingResp] = None,
    paging_urls: bool = True,
) -> None:
    if expected_paging is not None:
        received_paging = PagingResp.from_headers(response.headers)

        expected_values = dataclasses.asdict(expected_paging)
        received_values = dataclasses.asdict(received_paging)

        if not paging_urls:
            expected_values.pop("next")
            expected_values.pop("previous")

            received_values.pop("next")
            received_values.pop("previous")

        if expected_values != received_values:
            raise PagingMismatchError(
                f"Received values do not match expected values.\n"
                f"Received:\n"
                f"{received_values}\n"
                f"Expected:\n"
                f"{expected_values}")
Esempio n. 2
0
    def test_from_headers(self, paging_resp: PagingResp):

        headers = dict()
        paging_resp.to_headers(headers)

        from_headers = PagingResp.from_headers(headers)

        assert from_headers == paging_resp
Esempio n. 3
0
    def test_headers_round_trip_optionals(self, paging_resp: PagingResp):

        paging_resp.previous = None
        paging_resp.next = None
        paging_resp.total_items = None
        paging_resp.total_pages = None

        headers = dict()
        paging_resp.to_headers(headers)

        from_headers = PagingResp.from_headers(headers)

        assert "paging-previous" not in headers
        assert "paging-next" not in headers
        assert "paging-total-items" not in headers
        assert "paging-total-pages" not in headers

        assert from_headers == paging_resp